当amt为0时程序忽略停止,直到输入了10个数字。该程序在输入10个数字后也不会停止。我的错误在哪里?在C中使用while循环的复合条件。
main() {
int amt;
int tot = 0; /* running total */
int i = 0; /* counts number of times in loop */
while (amt!=0 || i < 10)
{
printf("Enter a number (enter 0 to stop): ");
scanf("%d", &amt);
tot = tot + amt;
i++;
}
printf("The sum of those %d number is %d.\n", i, tot);
}
请只是编译代码与所有的警告开启您张贴在这里了。任何像样的编译器都会告诉你像“使用单位化的值'amt'”,并且'main'的原型是不同的。 –
@JensGustedt - 你应该添加这个答案。令人惊讶的是,没有人甚至认为编译器警告可能实际上告诉你代码有问题。 –
@ D.Shawley,不,不,我不希望SO被重载过度。我只想解决这个问题,这对其他人没有任何用处。 –