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

这里哪里错了?总是不能算出结果

总是不能算出结果

提问者:梦之契约 2017-08-14 16:03

个回答

  • Hello_Word_
    2017-08-14 17:35:37
    已采纳

    定义的sum的数据类型错误,然后最后的printf里应该是sumc,我算的这个 答案是69.4

  • Hello_Word_
    2017-08-14 18:01:25

    #include <stdio.h>
    double getTaxiPrice(int hours,int distance)
    {
        double totalPrice = 0.0;    //定义打车费用
        double perPrice = 2.3;    //定义每公里单价计费
        int startPrice = 13;    //定义起步价

        if(hours<0 || hours>24){
            printf("请填写正确的时间\n");
            return 0;
        }
        else if(!(hours>=5 && hours<23))    //判断打车时间是否要增加费用
        {
            perPrice *= 1.2;    //费用增加20%                         
        }
        if(distance >3)        //判断公里数
        {
            totalPrice = startPrice +(distance - 3)*perPrice;    //计算价钱
        }
        else
        {
            totalPrice = startPrice;    
        }
        totalPrice++;    //加一块钱的燃油费
        return totalPrice;
    }
    int main()
    {
        int moring = 9;    //定义上午打车时间
        int afternoon = 18;    //定义下午打车时间
        int distance = 12;    //定义打车公里数
        double totalPrice = 0;    //定义总费用
        if(getTaxiPrice(moring,distance) != 0)
        {
            totalPrice = getTaxiPrice(moring,distance);    //调用计算费用的函数
        }
        if(totalPrice != 0)
        {
            totalPrice += getTaxiPrice(afternoon,distance);    //调用计算费用的函数
        }
        printf("小明每天打车的总费用是:%.2f\n",totalPrice);    //输出
        return 0;    
    }
    这个好理解一点

  • Hello_Word_
    2017-08-14 17:34:08

    #include <stdio.h>
    double pri(int mile,int times)
    {
        double sum;
        if(mile<=3)
        sum=13+ 1;
        else
        sum=2.3*(mile- 3)+ 14;
        if(times>=23||times<=5)
        sum=2.3*1.2*(mile-3)+14;
        return sum;
    }
    int main()
    {
      double suma=pri(12,9);
        double sumb=pri(12,18);
        double sumc=suma+sumb;
        printf("小明每天打车的总费用为%lf\n",sumc);
        return 0;
    }