输出结果?

来源:5-14 综合练习

慕慕3416675

2018-07-20 00:09

#include <stdio.h>


float sum=0,univalent=2.3;


float price(int km,int Time)

{

    float start=13;

    if(km<=3)

    {

       sum=start+1; 

    }

    else

    {

        if(5<=Time<23)

        sum=start+1+(km-3)*univalent;

        else

        sum=start+1+(km-3)*univalent*1.2;

    }

    return sum;

}


int main()

{

    float money;

    int a=9,b=18,km=12;

    money=price(km,a)+price(km,b);

    printf("小明每天的打车费用:%f\n",money);

    return 0;

}

输出结果为什么不是69.400000,而是69.399994,而且还发现一个问题,不是在5点与23点之间的时间,输出结果还是69.4,也就是说加收20%那步不起作用,求大牛指教,谢谢!

写回答 关注

2回答

  • 走在学渣后面的马桶专家7
    2018-07-21 14:57:21
    已采纳

    if(Time>=5&&Time<23)判断语句只能进行一次计算,所以要加&&与逻辑计算来实现

    慕慕3416...

    非常感谢!解决了我最关键的错误

    2018-07-21 22:39:45

    共 1 条回复 >

  • Voice______________
    2018-07-20 10:49:28

    晚上23点(含)至次日凌晨5点(不含)打车,每公里单价计费加收20%。   这句是这样吗?if(5<=Time<23)


    慕慕3416...

    我也觉得时间表述可能有问题,但不知道怎么改

    2018-07-20 10:54:44

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926206 学习 · 20797 问题

查看课程

相似问题