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

求平均值的简单C程序始终输出0,求助排查代码问题

C语言平均值计算代码错误排查

你的代码存在以下4处核心问题,是导致输出结果异常的原因:

  • 变量未初始化:sum定义后没有赋值为0,初始值是内存中的随机垃圾值,累加逻辑从起始就不符合预期。
  • 循环变量被异常覆盖:你将for循环的计数变量list同时用来接收用户输入的数值,会直接打乱循环计数逻辑,无法按照输入的total值执行对应次数的取值操作。
  • 累加逻辑颠倒:你写的list += sum逻辑完全错误,正确的逻辑是把用户输入的数值加到总和sum上,而非操作循环计数变量。
  • 输出格式符不匹配:avg是浮点型变量,你使用了仅用于输出整型的%d格式符,会直接导致输出内容错误。

以下是修正后的可正常运行代码:

#include <stdio.h>
    
int main() {
    // 初始化sum为0,新增单独变量num接收用户输入的数值
    int sum = 0, num, total;
    float avg;

    printf("Enter total number of values: ");
    scanf("%d", &total);

    for (int list = 0; list < total; list++) {
        printf("Enter the values: ");
        scanf("%d", &num);
        // 将输入值累加到总和
        sum += num;
    }
    
    avg = (float) sum / (float) total;
    // 浮点型使用%f格式符输出,此处保留2位小数可读性更强
    printf("The average of such values shall be: %.2f", avg);
    
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:45:02