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

计算平均值时小数部分无法显示的原因是什么?

问题原因

你这段代码里,a、b、c都是整数类型,它们相加的结果也是整数。当整数除以整数3时,C语言会执行整数除法——直接舍弃小数部分,只保留整数结果。之后再把这个整数赋值给float类型的avg,只会在末尾补.00,自然看不到小数部分。

解决方法

只要让除法运算变成浮点除法就行,有两种简单的修改方式:

  • 把除数改成浮点型,比如用3.0f代替3:

    #include<stdio.h>
    int main(){
        int a, b, c;
        printf("Enter any three numbers:");
        scanf("%d %d %d", &a, &b, &c);
        float avg = (a + b + c)/ 3.0f; // 将3改为浮点型常量
        printf("%.2f", avg);
        return 0;
    } 
    
  • 先把整数和强制转换成浮点型,再做除法:

    #include<stdio.h>
    int main(){
        int a, b, c;
        printf("Enter any three numbers:");
        scanf("%d %d %d", &a, &b, &c);
        float avg = (float)(a + b + c)/ 3; // 强制转换和为浮点型
        printf("%.2f", avg);
        return 0;
    } 
    

两种方式都能让除法运算保留小数部分,最终输出正常的带两位小数的平均值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:21:57