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

不懂哪里错了


{

    float sum;

    sum=pay(9,12)+pay(18,12);

    printf("小明每天打车的总费用为%f\n",pay,distance,time);

    

}

#include <stdio.h>

double pay(int time,int distance)

{

    double pay;

    if(time<5||time>23)

{

    if(distance<=3)

    pay=14;

    else 

    pay=14+(distance-3)*2.3;

}

   else

   {

       if(diatance<=3)

       {

           pay=14;

       }

       else 

       pay=14+(distance-3)*2.3*1.2;

       }

      printf("pay=%f\n",pay);

      

   }

    

    

int main()


提问者:曾小妍 2016-04-02 22:03

个回答

  • 我就是我做自己
    2016-04-03 21:56:11
    已采纳

    你这是弄反了吧,题目说明的是在 晚上23点(含)至次日凌晨5点(不含)打车,每公里单价计费加收20%,你的程序恰好是在这个时间段之外才多加20%。

  • 浅o伤
    2016-04-13 16:18:56

    首先sum是float 而你函数返回的是double 无法自动转换,然后printf里你只设了一个参数 只要一个sum就够了。还有函数里两个时间搞反了,而且最后不是用printf返回值,是用return 返回pay。