【发布时间】:2011-12-03 16:49:36
【问题描述】:
程序在 amt 为 0 时忽略停止,直到输入 10 个数字。该程序在输入 10 个数字后也不会停止。我的错误在哪里?
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 被琐碎的事情所淹没。我只想结束这个问题,这对其他人没有任何用处。
-
我正在使用 SSH 连接到我的学校并使用服务器中的编译器;当我编译程序时,没有出现错误。如何在 Windows 7 中使用 vim 作为编辑器的同时使用更好的编译器?
-
@jrasa,您的编译器可能有一个命令行开关或类似的开关来提高其警告级别。例如,对于 gcc,这是
-Wall。你的老师应该告诉你的。而且我认为在 Windows 上也有几个可用的现代编译器。
标签: c loops while-loop conditional-statements