代码非常简单,它只是接受来自控制台的值并在我进行时添加它们,基本上是一个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
}
答案 0 :(得分:2)
变量x
的初始值是垃圾值,因此用户输入的每个数字都会被添加到该垃圾值中,这显然会导致输出错误。
将变量x
初始化为0
int x = 0;
答案 1 :(得分:1)
在开头添加x = 0,一切都会好的。