我刚刚开始使用C并且已经遇到了这个问题。程序应该接受用户输入的整数,并且一旦用户输入-1,程序退出并显示输入的所有整数的总和。我遇到的唯一麻烦就是它出于某种原因将总和显示为0,即使我在“Sum is”下面进行了数学运算。非常感谢任何帮助。
int x;
int sum = 0;
printf("Please enter some integers man\n");
do
{
scanf_s("%d", &x);
} while (x != -1);
printf("\n");
printf("Sum is: %d ", sum);
sum = sum + x;
printf("\n");
答案 0 :(得分:4)
您只需将x
添加到sum一次,然后将其打印出来。将x
添加到sum
进入循环。
您还需要确保不添加-1
,这可能仅仅作为结束循环的条件而不是您要添加的术语。
答案 1 :(得分:0)
如果你想找到数字的总和,你应该在while循环中添加它们。 所以你的代码行
sum = sum+x;
时应该放置
do
{
scanf("%d",&x);
sum = sum+x;
}while(x!=-1);
但是现在你在你的总和中加了-1而且我怀疑你想要那个,所以你应该在做完之后加1加总
do
{
scanf("%d",&x);
sum = sum+x;
}while(x!=-1);
sum = sum+1;
或者使用while循环
x=0;
while(x!=-1)
{
scanf("%d",&x);
sum=sum+x;
}
答案 2 :(得分:0)
在Jacek的答案的基础上,这里是获得有效求和的细节,没有最后添加-1而没有额外的if
:
int x=0;
int s=0;
/* ... */
do
{
sum = x + sum; /* first time x==0, no effect */
s=scanf_s("%d", &x); /* note scan success */
} while ((x != -1) && (s==1)); /* also quit on scan failure */
/* do not sum = x + sum; anywhere outside of the loop */