浮点异常(核心转储)需要帮助确定潜在错误在哪里

问题描述 投票:0回答:1

此函数应打印 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;
}
c for-loop point floating
1个回答
2
投票

evenCount
oddCount
为零时,
evenTotal/evenCount
oddTotal/oddCount
会被零除。很可能,这些都是整数变量,除以零会导致异常。由于历史原因,这被报告为“浮点异常”。

© www.soinside.com 2019 - 2024. All rights reserved.