C,autosum代码不会输入int值

时间:2017-01-21 08:50:47

标签: c

代码非常简单,它只是接受来自控制台的值并在我进行时添加它们,基本上是一个autosum。

我猜测代码无法正常工作的原因是因为不管两种类型都是int,似乎不能将x和y加在一起?代码非常简单,所以我很困惑。如果我加上说,4,3,2,6我得到一个奇怪的结果,看起来像154323432。 我尝试了其他变体,例如在数组中包含所有元素并在子索引中添加内容,但结果是相同的。

#include <stdio.h>
#include <string.h>

void autosuma()  
{

    int x, y =0;
    int i =1;

    while(i <5)  
    {    
        printf("Enter list number %d: ", i);
        scanf("%d",&y);
        x = x+y; // I know I could write x=+y;
        i++;  

        printf("%d\n",x);
    }  

    printf("%d",x); // just printing the total
}

2 个答案:

答案 0 :(得分:2)

变量x的初始值是垃圾值,因此用户输入的每个数字都会被添加到该垃圾值中,这显然会导致输出错误。

将变量x初始化为0

int x = 0;

答案 1 :(得分:1)

在开头添加x = 0,一切都会好的。