未显示的数字总和

时间:2018-05-15 18:38:31

标签: c

我刚刚开始使用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");

3 个答案:

答案 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 */