慕粉3485277
2016-07-31 22:32
哪里错了啊
#include <stdio.h>
double fee(int mile,int time)
{
double fee=0.0;
if(mile<=3)
fee=13;
else if(time>=23&&time<=5)
fee=13+(mile-3)*2.3*1.2+1;
else
fee=13+(mile-3)*2.3+1;
return fee;
}
int main()
{
int d=12;
int t=6;
printf("小明每天打车费用为:%lf",fee(d,t));
return 0;
}
你的代码的大框架没有问题,就是小细节没考虑好哦;
#include <stdio.h>
double fu(double mile, time) //time是参数,没有定义类型,参数必须每个都要声明类型!
{ double fee; //可以不赋初值,没有问题
if(mile<=3) //for循环的逻辑问题比较大哦
{
fee=13;
}
if(mile>3) { if (time>=5||time<23) //这里的判断条件是不满足mile<3了,那么就会转向这里,所以不用再嵌套一个if语句
{
fee=13+(mile-3)*2.3;
}
else
{
fee=13+(mile-3)*2.3*1.2;
} }
return fee;
}
int main()//主函数里基本没有问题
{ double l;
l=fu(12,9)+fu(12,18);
printf("小明每天打车的费用:%f\n",l);
return 0;
}
细节+循环的逻辑,是你要加强的哦,建议你重新看一下之前的内容,多练练哦。
#include <stdio.h>
double fee(int distance,int in,int out)
{
float fee=0.0;
if(distance<=3)
fee=13+1;
else if(in>=23&&out<=5)
{
fee=13+(distance-3)*2.3*1.2+1;
}
else
{
fee=13+(distance-3)*2.3+1;
}
return fee;
}
int main()
{
int distance=12;
int in=9,out=6;
printf("小明每天打车费用为:%lf",fee(12,9,6));
return 0;
}
C语言入门
926210 学习 · 20797 问题
相似问题