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

C++中操作int变量的函数如何正确返回float类型值

问题根因

代码结果错误确实和类型转换逻辑有关:C++中两个int类型变量做除法时,会先执行整数除法,直接截断舍弃小数部分,仅保留整数结果,之后才会把这个整数转换为float类型返回,所以得不到带小数的正确平均值。

修复方法

只需要在做除法运算前,将其中一个操作数强制转换为浮点类型,就能触发浮点除法规则,修改average函数的返回语句即可:

// 写法1:C风格强制转换
return (float)sum / length;

// 写法2:更规范的C++风格强制转换
return static_cast<float>(sum) / length;

其他可优化点

你代码中int scores[N];属于变长数组,这不是C标准语法,仅部分编译器做了扩展支持,可移植性差。建议替换为C标准容器:

  1. 引入头文件#include <vector>
  2. 将数组定义修改为vector<int> scores(N);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:24:01