为了账号安全,请及时绑定邮箱和手机立即绑定

输出结果?

#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 回答

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

0 回复 有任何疑惑可以回复我~
#1

慕慕3416675 提问者

非常感谢!解决了我最关键的错误
2018-07-21 回复 有任何疑惑可以回复我~

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


0 回复 有任何疑惑可以回复我~
#1

慕慕3416675 提问者

我也觉得时间表述可能有问题,但不知道怎么改
2018-07-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926206    人
  • 解答问题       20797    个

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

进入课程

输出结果?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信