|
发表于 2018-10-30 22:40:03
|
显示全部楼层
本帖最后由 ba21 于 2018-10-30 22:55 编辑
题意是输入一系列字符 把其中的数字挑出来打印
又看了下,我猜题义应该是:字符串 中 前面的数字部份吧。如:123af1231得123, 和字符串中第1组数字部份 如:ab123fff5464 得123
那么下面代码就合理了
假设: 123af1231
首先
int num = 0;
if (ch >= '0' && ch <= '9')
{
num = 10 * num + (ch - '0'); //10*0+(49-48) 得 1
num = 10 * num + (ch - '0'); //10*1+(50-48) 得 10+2 得12
num = 10 * num + (ch - '0'); //10*12+(51-48) 得 120+3 得123
}
else //如果是a 则到else
{
if (num) // num<>0 说明到了不是数字的部份, 如果num==0说明还是刚刚进入字符串
{
break; // 如果已有数字,则退出循环
}
}
最后
printf("结果是:%d\n", num); 不就是123了吗?
我也不理解什么意思。你确定代码是甲鱼老师的?那你呼叫他问下。
再着你这代码怎么看也不可能(题意是输入一系列字符 把其中的数字挑出来打印),事实调试也没有代到你说的要求 |
|