{
float sum;
sum=pay(9,12)+pay(18,12);
printf("小明每天打车的总费用为%f\n",pay,distance,time);
}
#include <stdio.h>
double pay(int time,int distance)
{
double pay;
if(time<5||time>23)
{
if(distance<=3)
pay=14;
else
pay=14+(distance-3)*2.3;
}
else
{
if(diatance<=3)
{
pay=14;
}
else
pay=14+(distance-3)*2.3*1.2;
}
printf("pay=%f\n",pay);
}
int main()
你这是弄反了吧,题目说明的是在 晚上23点(含)至次日凌晨5点(不含)打车,每公里单价计费加收20%,你的程序恰好是在这个时间段之外才多加20%。
首先sum是float 而你函数返回的是double 无法自动转换,然后printf里你只设了一个参数 只要一个sum就够了。还有函数里两个时间搞反了,而且最后不是用printf返回值,是用return 返回pay。