#include <stdio.h>
int main()
{
int time(float t);
float result(float n);
float t,n,a,b,c;
scanf("%f%f",&t,&n);
a=result(n);
scanf("%f%f",&t,&n);
b=result(n);
c=a+b;
printf("总车费为%f\n",c);
return 0;
}
int time(float t)
{
if(t>=23 || t<5)
return 0;
else
return 1;
}
float result(float n)
{
float a,t;
if(time(t))
{
if(n<=3)
{
a=13+1;
printf("车费为%f\n",a);
}
else
{
a=13+1+(2.3)*(n-3);
printf("车费为%f\n",a);
}
}
if(!time(t))
{
if(n<=3)
{
a=13+1;
printf("车费为%f\n",a);
}
else
{
a=13+1+2.3*1.2*(n-3);
printf("车费为%f\n",a);
}
}
return a;
}
首先你定义的自创函数time没有调用;第二,你定义的有问题,mian函数里定义的t是局部变量,而float result(float n)里定义的变量t只在这里面产生作用,与mian函数里的区别。float result(float n)定义的int型t没有赋值,所以默认复制0。
当上面的写成!time(n)时间,那么就执行,如果下面写成!time(n)就下面的执行。