不懂哪里错了

来源:5-14 综合练习

曾小妍

2016-04-02 22:03


{

    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()


写回答 关注

2回答

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

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

    曾小妍

    非常感谢!

    2016-04-13 23:23:08

    共 1 条回复 >

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

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

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题