#include<stdio.h>
int main()
{
int line,linex;
printf("Enter number of lines: ");
scanf("%d",&line);
linex=line;
while(line!=0)
{
int input=0,total=0,number=0;
printf("Enter line %d: ",(linex-line+1));
scanf("%d",input);
while (input!=-1)
{
total+=input;
number++;
}
printf("Average = %f\n",(total/number));
line-=1;
}
return 0;
}
上面是我的代码,它会询问用户行数,每行中的数字,然后打印出每行的平均值。事情是,当我尝试在Microsoft Visual C++ 2010 express中运行此程序时,程序崩溃。我输入-1以破坏第二个WHILE循环后崩溃。C代码在运行时崩溃
当大卫写道scanf函数需要变量输入的地址。顺便说一句,你的内部while循环将被跳过,或者它将被输入并且永远不会离开,因为'input!= - 1'是循环不变的。 –
除了崩溃,'total/number'是一个整数,而不是一个浮点数,所以你在那里有未定义的行为。使用'(float)total/number',将'total'转换为'float',以便进行浮点除法('total /(float)number'也可以)。 –