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

为何C语言计算平均油耗未得到正确浮点数结果?

问题原因与解决方案

这是整数除法特性导致的计算错误。

你代码中的distance和noOfLiters都是int(整数)类型,在C语言中,两个整数执行除法运算时,会遵循整数除法规则:只保留商的整数部分,直接舍去小数部分。比如你输入的5(燃油量)除以50(距离),整数除法的结果是0,之后把这个0赋值给float类型变量,最终输出就是0.000000。

修正方法

有两种简单的方式可以解决这个问题:

方法1:强制类型转换操作数

在除法运算前,将其中一个整数操作数强制转换为float类型,这样C语言会自动将另一个操作数也转换为float,执行浮点数除法:

float avgFuelConsumption = (float)noOfLiters / distance;

或者转换除数:

float avgFuelConsumption = noOfLiters / (float)distance;

方法2:将变量声明为float类型

直接把distance和noOfLiters声明为float类型,这样输入后直接执行浮点数除法:

#include <stdio.h>

int main(){
    float distance;
    float noOfLiters;
    printf("Enter The distance:");
    scanf("%f",&distance);
    printf("Enter The Fuel Spent:");
    scanf("%f",&noOfLiters);

    float avgFuelConsumption = noOfLiters/distance;

    printf("Average Fuel Consumption :  %f", avgFuelConsumption);
}

修正后输出

使用第一种方法修改后,输入50和5的输出结果为:

Enter The distance:50
Enter The Fuel Spent:5
Average Fuel Consumption :  0.100000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:48:17