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

如何获取分数变量并计算平均分?(C代码修改求助)

问题解决:获取分数并计算平均分

你的代码已经完成了获取用户输入的分数数量和每个分数的部分,但计算平均分的逻辑存在明显问题,以下是修正后的实现:

原代码的核心问题

  • 你在计算时重复调用score[n],但数组的有效索引范围是0到n-1,score[n]属于越界访问,会触发未定义行为。
  • 固定除以3.0,没有根据用户输入的实际分数数量n计算,完全不符合平均分的逻辑。

修正后的完整代码

#include <stdio.h>
#include <cs50.h>

int main(void)
{
    int n = get_int("How many scores you have? ");
    int score[n];
    int total = 0; // 初始化总和变量,用于累加所有分数

    for(int i = 0; i < n; i++)
    {
        score[i] = get_int("Score: ");
        total += score[i]; // 每输入一个分数,就累加到总和中
    }

    // 将总和强制转换为double类型,避免整数除法丢失精度,再除以分数数量n
    printf("Average: %.2f\n", (double)total / n);
}

关键修改说明

  1. 新增int total = 0;:专门用来存储所有分数的累加总和。
  2. 循环内添加total += score[i];:在输入每个分数的同时完成累加,避免后续再遍历数组。
  3. 修改平均分计算逻辑:用(double)total / n替代原错误写法,强制转换为浮点数后再做除法,保证结果的精度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:48:14