我知道我这样写很啰嗦,但毕竟是我自己的想法,错误多的话还请指出,谢谢
#include <stdio.h> float fee(int dis,int t) { float money; int flag; if(5>t||t>=23) {flag=1;} else {flag=0;} if(dis<=3) { money=14; printf("车费为%f元。\n",money); } else { if(flag==1) { money=13+1+(dis-3)*2.3; } else { money=13+1+(dis-3)*2.3*1.2; } return money; int main() { printf("小明打车费用为%d元",fee(12,9)+fee(12,18)); return 0; }
float fee(int dis,int t)逗号格式换成英文的, return money;后面加}},你缺了两个大括号的后半部分,条件中的燃油费是不分时段的所以就没必要加flag,条件的需要写出来的只有两个时间和距离,你这个我能改的就这么多,不过金额还不对
这个就是根据你的改的,其中的错误,除了楼上那位所说的错误,最重要的是,你把flag的情况搞反了!应该是当flag==1时,*1.2,因为你的条件是t>5||t<=23,这个时间段应该是加钱,结果你给搞反了
#include <stdio.h>
float fee(int dis,int t)
{
float money;
if(dis<=3)
money=14;
else
{
if(t<5||t>=23)
money=13+1+(dis-3)*2.3*1.2;
else
money=13+1+(dis-3)*2.3;
}
return money;
}
int main()
{
printf("小明打车费用为%.2f元",fee(12,9)+fee(12,18));
return 0;
}