对于我试图编写的程序,我必须创建一个程序,要求用户输入一个数字并计算输入的所有数字的总和,直到用户输入-1来停止循环。但是,我无法打印-1或将其添加到总数中,但我正在努力。
#include <stdio.h>
int main ()
{
int x, total;
total = 0;
x = 0;
while (x <= -2 || x >= 0)
{
printf("Please enter a number: ");
scanf("%d", &x);
printf("You entered %d \n", x);
totalSum = total + x;
printf("total is %d \n", total);
}
printf("Have a nice day :) \n");
printf("total is %d \n", total);
return 0;
}
关于如何在不打印或添加总数的情况下将循环停止在-1的任何建议?
答案 0 :(得分:2)
您可以在循环开始时检查输入是否等于-1
,如果是,则退出而不是计算:
while(1) {
printf("Please enter a number: ");
scanf("%d", &x);
if (-1 == x)
break;
...
}
答案 1 :(得分:0)
我很抱歉,但当我看到仅由条件中断驱动的while(1)
循环时,我只是畏缩。怎么样:
printf("Please enter a number: ");
while(scanf("%d", &x) == 1 && x != -1)
{
// do work
printf("Please enter a number: ");
}
这种方法的一个缺点是打印是重复的,但我相信拥有while条件的pro实际上驱动循环比弥补它更多。另一个好处是,此处还会检查scanf,以确保它正确读取下一个值。