#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'也可以)。 –