问答详情
源自:5-14 综合练习

输出结果?

#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%那步不起作用,求大牛指教,谢谢!

提问者:慕慕3416675 2018-07-20 00:09

个回答

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

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

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

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