这是我的书中的代码(关于无限循环),但是当我运行程序并添加ie 5
和5
时,我输入1
退出,我得到12
。
int main()
{
unsigned int num;
unsigned long sum;
for ( ; ; )
{
printf("Enter a number from 2-65535 or enter 1 to end a program.\n");
scanf("%u", &num);
if(num == 1)
break;
else
sum+=num;
}
printf("Total sum: %lu.\n", sum);
return 0;
}
有人能告诉我我做错了什么并修正了错误吗?
答案 0 :(得分:3)
sum
未初始化。它具有不确定值。
答案 1 :(得分:2)
您应该在程序顶部初始化sum
。它可能是任何东西!
答案 2 :(得分:1)
您尚未初始化变量sum
。它的值是不确定。
如果没有显式初始化具有自动存储持续时间的对象,则其值为 不定。
将其初始化为0
unsigned long sum = 0;