求助
求教这个程序为啥我分析着如果输入123abc应该只有1可以输出呀,为啥答案还是123?不是第一个1在输入进去后num就有了值,然后就退出循环了莫{:10_254:} 当用户输入的不是数字(或输入换行),如果 num 已经有了值,才退出循环 判断num是否有值是第二层逻辑判断,在这之前需要不满足ch在0——9之间(第一层if-else逻辑判断)而ch直到a的时候才满足这一条件,因此会输出123 #include <stdio.h>
int main()
{
char ch;
int num = 0;
printf("请输入待转换的字符串:");
do
{
ch = getchar();
if(ch >= '0' && ch <= '9')// 当输入123执行这一条语句
{
num = 10 * num + (ch - '0');
}
else // 输入a执行这一条语句
{
if(num) // 此时num=123
{
break;
}
}
}
while(ch != '\n');
printf("结果是:%d\n",num);
return 0;
}
页:
[1]