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

查半天,大佬帮我看看错哪了

#include <stdio.h>
    float daycar(td,d){
    return money(td,d);   
    }
    float money(t,d){
    float money;
    if(d<=3)
    money=13;
    return money;
    else{
    if(t>=23&&t<=5)
    money=(d-3)*2.3*1.2+13;
     else { 
    money=(d-3)*2.3+13;   
        }
        return money;
    }
    float afternooncar(tn,d){
    return money(tn,d);   
    }

int main()
{  
int td=8;
int tn=18;
int d=12;
    printf("小明每天打车费用%f",daycar(td,d)+afternooncar(tn,d));    
   

    return 0;
}


提问者:qq_狗活_twEPQW 2019-02-24 23:52

个回答

  • 慕移动0047979
    2019-02-25 12:21:46
    已采纳

    三处比较明显的错误:

    (1)函数参数td,d,t未定义,就直接使用了,应改为(int td,int d)。

    (2)if-else语句多重分支情况,中间应使用else if(条件),同时if-else条件下存在多于一条的执行语句时,要用花括号括起来。

    (3)自定义函数调用,应该在写完这个自定义函数之后,否则就要在函数最前面声明,上述编程中money调用在定义之前。

    最后,附上修改完的程序:

    #include <stdio.h>

        float money(int t, int d)

        {

            float money;

            if(d<=3)

            {

                money=13;

                return money;

            }

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

            {

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

            }

            else 

            {  

                money=(d-3)*2.3+13;    

            }

            return money;

        }

        float daycar(int td,int d)

        {

            return money(td,d);    

        }

        float afternooncar(int tn,int d)

        {

            return money(tn,d);    

        }

    int main()

    {   

    int td=8;

    int tn=18;

    int d=12;

        printf("小明每天打车费用%f",daycar(td,d)+afternooncar(tn,d));    

        return 0;

    }