#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;
}
三处比较明显的错误:
(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;
}