由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请教如何修正这个C程序的bug。
相关主题
一道算法题求教,问一道C++的题目。 (转载)
大家看看这个简单的qsort排序的问题谁来解释一下这个是compiler问题吗?
数组问题free(char *)的问题 (转载)
C 和 C++ 的区别关于 big/little endian,为什么对char 有影响?
C 语言,2进制转16进制,输入问题C, how is a string cast into a int?
C ++ 问题再问一个free()的问题
面试题 -算法?c++ 中如何把str转换为float?
little endian vs big endian怎么打印中文字符串?
相关话题的讨论汇总
话题: sum话题: input话题: bug话题: 程序话题: 修正
进入Programming版参与讨论
1 (共1页)
r****o
发帖数: 1950
1
【 以下文字转载自 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的原因和修正办法。
1 (共1页)
进入Programming版参与讨论
相关主题
怎么打印中文字符串?C 语言,2进制转16进制,输入问题
C的问题,困惑中C ++ 问题
看下这个小程序面试题 -算法?
怎么得到char *分配空间的大小?little endian vs big endian
一道算法题求教,问一道C++的题目。 (转载)
大家看看这个简单的qsort排序的问题谁来解释一下这个是compiler问题吗?
数组问题free(char *)的问题 (转载)
C 和 C++ 的区别关于 big/little endian,为什么对char 有影响?
相关话题的讨论汇总
话题: sum话题: input话题: bug话题: 程序话题: 修正