C语言入门5-14练习中,怎么得不到小数?

北京市出租车打车计费规则如下:

1. 每公里单价计费2.3元

2. 起步价13元(包含3公里)

3. 晚上23点(含)至次日凌晨5点(不含)打车,每公里单价计费加收20%。

4. 每次乘车加收1元钱的燃油附加税。

小明每天上下班都要打车,公司和家的距离为12公里,上午上班时间为9点,下午下班时间为6点。

请编写一个小程序计算小明每天打车的总费用。

我写的:

#include <stdio.h>
int fn(int x,int t)
{
    float price;
    float cost;
    if(x<=3)
    {
        cost=13;
    }
    else
    {
        if(t<5&&t>=23)
            {
                price=2.3*1.2;
            }
        else
            {
                price=2.3;
            }
        cost=13+price*(x-3);
    }
    return cost;
}
int main()
{
    float cost1,cost2,cost;
    cost1=fn(12,9);
    cost2=fn(12,18);
    cost=cost1+1+cost2+1;
    printf("%f,%f,%f\n",cost,cost1,cost2);
    return 0;
}

结果是68.000000 33.000000 33.000000

月飞
浏览 1265回答 1
1回答

DKSky

函数的返回值是int,最后只是将int赋值给float,当然小数只有0了
打开App,查看更多内容
随时随地看视频慕课网APP