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

C语言输入整数计算均值及占比的代码出错,求协助排查

代码错误排查与修正

你的代码存在以下几个关键问题:

  • 变量计算顺序错误:sum = a + b + c; 写在 scanf 读取输入之前,此时a、b、c是未初始化的随机值,导致sum的计算完全错误,必须把sum的计算放在scanf之后。
  • 整数除法丢失精度:sum / 3 是整数除法,两个整数相除会直接舍弃小数部分(比如7/3结果为2而非2.33),无法得到正确的浮点平均值,需要将其中一个操作数转为浮点类型来触发浮点运算。
  • 比例计算的整数截断问题:a / sum * 100 同样是整数除法,若a小于sum,a/sum的结果会被截断为0,最终比例也会是0,需要先将操作数转为浮点类型再计算。

修正后的代码如下:

#include <stdio.h>

int main(void)
{
    int a, b, c, sum;
    double d, p;
    
    printf("请输入三个整数:");
    scanf("%d %d %d", &a, &b, &c);
    
    sum = a + b + c;
    d = (double)sum / 3;  // 转为浮点运算保留小数精度
    printf("3个整数的平均值是:%.2f", d);
    
    p = (double)a / sum * 100;  // 先转浮点再计算比例
    printf(",第一个数占和的比例是:%.2f%%", p);
    
    return 0;
}

补充说明:

  • 新增return 0;符合C语言标准的main函数规范。
  • 输出时去掉了多余的d=和p=,让结果显示更直观,若你需要保留变量名标识,可改回原格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:20:56