You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言程序出现Floating point exception,请求定位问题

引发浮点异常的原因分析

这段代码会在以下核心场景触发浮点异常(本质是整数除零错误):

1. 未初始化的计数变量导致潜在除零

代码中evenCount、oddCount、evenTotal、oddTotal都是局部整型变量,C语言中局部变量默认不会自动初始化为0,会保留内存中的随机垃圾值。如果程序运行时这些计数变量的初始垃圾值恰好为0,或者后续逻辑中计数未被累加(比如用户直接输入0终止程序),那么执行:

double evenAvg = evenTotal/evenCount;
double oddAvg = oddTotal/oddCount;

时就会触发除零操作,引发浮点异常。

2. 输入数据导致某类数的计数为0

比如用户全程只输入偶数(最后输入0终止),那么oddCount会一直是初始垃圾值或0,计算oddAvg时会除以0;反之如果只输入奇数,evenCount为0,计算evenAvg时触发除零。

额外逻辑问题补充

  • 循环条件while(numReturn != 0)一开始就使用未初始化的numReturn,行为未定义,可能直接跳过循环进入平均值计算阶段,加剧除零风险。
  • 输入0时,代码会进入else if(numReturn%2 == 0)分支,错误地将0计入偶数总和和计数,不符合需求(0是终止符,不应被统计)。

内容的提问来源于stack exchange,提问作者PapaPumpkin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 01:38:17