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

C++中computeAverage函数无法正确计算分数平均值问题求助

故障原因排查与修复方案

核心错误:数组首地址传参错误

你调用computeAverage时传入的第一个参数&theScores[arraySize]是非法地址:

  • C++数组下标从0开始,合法下标范围为0 ~ arraySize-1,theScores[arraySize]本身属于数组越界访问,对应的地址是数组末尾之后的未知内存区域
  • 函数内部读取的都是该非法地址后续的随机内存值,累加结果必然错误
    正确调用方式可选以下任意一种:
  • 直接传入数组名作为首地址:computeAverage(theScores, arraySize)
  • 显式传入第一个元素的地址:computeAverage(&theScores[0], arraySize)

次要问题:整数除法精度丢失

你当前实现用int类型存储运算结果,C++的整数除法会直接丢弃小数部分,例如总和为7、数组大小为2时,得到的结果是3而非3.5。如果业务场景需要保留小数精度,可以调整函数实现如下(依然符合仅声明1个变量的要求):

double computeAverage(const int anArray[], const int arraySize)
{
    double average = 0;
    for (int i = 0; i < arraySize; i++)
    {
        average += anArray[i];
    }
    average = average / arraySize;
    return average;
}

内容的提问来源于stack exchange,提问作者Code With Faraz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:24:03