【 以下文字转载自 InterviewHackers 俱乐部 】
发信人: roufoo (五经勤向窗前读), 信区: InterviewHackers
标 题: 请教如何修正这个C程序的bug。
发信站: BBS 未名空间站 (Fri Dec 17 03:28:43 2010, 美东)
这个程序是网上直接copy下来的。程序很简单,是将输入的字符串变成integer。
#include
int main(void)
{
int sum = 0, i = 0;
char input[5];
while (1) {
sum = 0;
scanf("%s", input);
for (i = 0; input[i] != '\0'; i++)
sum = sum*10 + input[i] - '0';
printf("input=%d\n", sum);
}
return 0;
}
有个bug是:
当输入12345时,输出是123407。
请问导致此bug的原因和修正办法。