此函数应打印 while 循环给出的奇数和偶数输入的平均值,直到输入 0,然后结束。它目前无法运行,我将此块从与错误无关的较大代码部分中分离出来。有什么想法会给出点异常错误吗?
int main()
{
int numReturn;
int evenTotal;
int evenCount;
int oddTotal;
int oddCount;
while(numReturn != 0){
printf("Enter a positive integer: ");
scanf("%d",&numReturn);
if(numReturn<0){
printf("That's a negative number!\n");
}else if(numReturn%2 == 0){
evenTotal += numReturn;
evenCount += 1;
}else{
oddTotal += numReturn;
oddCount += 1;
}
}
double evenAvg = evenTotal/evenCount;
double oddAvg = oddTotal/oddCount;
printf("%d even numbers were entered and the average is %lf\n",evenCount,evenAvg);
printf("%d odd numbers were entered and the average is %lf\n",oddCount,oddAvg);
//some code for problem 1
return 0;
}
当
evenCount
或 oddCount
为零时,evenTotal/evenCount
或 oddTotal/oddCount
会被零除。很可能,这些都是整数变量,除以零会导致异常。由于历史原因,这被报告为“浮点异常”。