北京市出租车打车计费规则如下: 1. 每公里单价计费2.3元 2. 起步价13元(包含3公里) 3. 晚上23点(含)至次日凌晨5点(不含)打车,每公里单价计费加收20%。 4. 每次乘车加收1元钱的燃油附加税。 小明每天上下班都要打车,公司和家的距离为12公里,上午上班时间为9点,下午下班时间为6点。 请编写一个小程序计算小明每天打车的总费用。为什么算出的结果是错了哪里出错了

来源:5-14 综合练习

歪歪TnT

2016-07-25 21:38

#include <stdio.h>

float putmoney(int li,int time)

{

    float money;

    if(23<=time<=24||0<=time<=5)

    {

        if(li<=3)

        money=14*1.2;

        else

        money=14*1.2+(li-3)*2.3*1.2;

    }

    else

    {

        if(li<=3)

        money=14;

        else

        money=14+(li-3)*2.3;

    }

    return money;

    

    

    }

int main()

{

    printf("小明上午打车的总费用%f\n",putmoney(12,9)+putmoney(12,6));

    return 0;

}


写回答 关注

2回答

  • 蓝丶
    2016-07-26 10:47:04
    已采纳

     if(23<=time<=24||0<=time<=5)     像0<=time<=5这样是不行的, 

    改为if(23<=time&&time<=24||0<=time&&time<=5)        参考章节3-7 逻辑运算符

    输出的值为全天的打车费用69.4元

    歪歪TnT

    非常感谢!

    2016-07-26 14:23:04

    共 1 条回复 >

  • 别人叫我呆子萌
    2016-07-26 11:24:41

    #include <stdio.h>

    float allmoney(int dis,int time)

    {

        float money;

        if((time<=24&&time>=23)||(time<=5&&time>=0))

        {

            if(dis<=3)

            money=13+1;

            else

            money=13+(dis-3)*2.3*1.2+1;

        }

        else

        {

            if(dis<=3)

            money=13+1;

            else

            money=13+1+(dis-3)*2.3;

        }

        return money;

        

        

        }

    int main()

    {

        printf("小明打车的总费用%f\n",allmoney(12,9)+allmoney(12,6));

        return 0;

    }

    这是我修改过的  

C语言入门

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

926027 学习 · 20793 问题

查看课程

相似问题