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

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

#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;

}


提问者:歪歪TnT 2016-07-25 21:38

个回答

  • 蓝丶
    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元

  • 别人叫我呆子萌
    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;

    }

    这是我修改过的