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

求问这个代码哪里不对?

#include <stdio.h>


int main()

{

    float morningPay,eveningPay,totalPay;

    morningPay=sum(9,12);

    eveningPay=sum(18,12);

    totalPay=morningPay+eveningPay;

    printf("小明每天打车的总费用是:%f元\n",totalPay);

    return 0;

}


float sum(int t,int d)

{

    int pay;

    if(t>5||t<=23)

    {

        if(d<=3)

        {

            pay=13+1;

        }

        else

        {

            pay=13+(d-3)*2.3+1;

        }

    }

    else if(t<=5||t>23)

    {

        if(d<=3)

        {

            pay=13+1;

        }

        else

        {

            pay=13+(d-3)*2.3*1.2+1;

        }

    }

    return pay;

}


提问者:洋气么么 2018-12-20 10:49

个回答

  • 慕UI3564028
    2018-12-25 19:46:27

    就语法错误来讲, 你定义的sum函数是float类型的, 返回值pay也应该是float类型, 然而你定义pay的时候却定义成了int类型

  • 慕婉清2454624
    2018-12-21 20:30:35

    我只知道int pay应该改为double  pay

  • 洋气么么
    2018-12-20 10:51:03

    提示是什么意思呢

  • 洋气么么
    2018-12-20 10:50:44

    运行失败

    hello.c: In function 'main':
    hello.c:6:16: warning: implicit declaration of function 'sum' [-Wimplicit-function-declaration]
         morningPay=sum(9,12);
                    ^~~
    hello.c: At top level:
    hello.c:13:7: error: conflicting types for 'sum'
     float sum(int t,int d)
           ^~~
    hello.c:6:16: note: previous implicit declaration of 'sum' was here
         morningPay=sum(9,12);
                    ^~~