| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 
num = 10 * num + (ch - '0');这个语句看不懂, 为什么要10*num?    
 
还有我如果输入abc123, num怎么会得到123, 按我理解应该是得到3,前面的数字应该被刷新掉的? 
------------------------------------------------- 
 
    int main() 
    { 
            int ch; 
            int num = 0; 
 
            printf("请输入待转换的字符串:"); 
 
            do 
            { 
                    ch = getchar(); 
 
                    if (ch >= '0' && ch <= '9') 
                    { 
                            num = 10 * num + (ch - '0'); 
                    } 
                    else 
                    { 
                            if (num) 
                            { 
                                    break; // 如果已有数字,则退出循环 
                            } 
                    } 
 
            } 
            while (ch != '\n'); 
 
            printf("结果是:%d\n", num); 
 
            return 0; 
    }
1.num = 10 * num + (ch - '0'); 
因为num是得到输入的每一位,所以要乘以十才能变成数字。 
2.因为你输入abc123,第一个if不成立进入else,num=0,继续循环 
再次循环,第一个if不成立进入else,num=0,继续循环 
再次循环,第一个if不成立进入else,num=0,继续循环, 
再次循环,第一个if成立进入num=1 
…… 
 
 
 |   
 
 
 
 |