#include <stdio.h>
float taxifee(int clock,int miles)
{
float money;
if(miles<=3)
{
money=14;
printf("费用为14\n");
}
else
{
if(clock>=23 || clock<5)
{
money=13+1+2.3*(miles-3)*1.2;
printf("夜间车费为:%f\n",money);
}
else
{
money=13+1+2.3*(miles-3);
printf("日间车费为:%f\n",money);
}
}
return money;
}
int main()
{
printf("打的总费用:%.1f\n",taxifee(9,12)+taxifee(18,12));
return 0;
}
money=13+1+2.3*(miles-3)*1.2 这一条得到的结果应该是双精度,而定义taxifee为单精度,所以需要强制转换,把float taxifee 换成 double taxifee试一试 //新手的个人理解
float taxifee(int clock,int miles)
{
float money;
if((clock<23 || clock>=5)&&miles>3)
{
money=13+1+2.3*(miles-3);
printf("日间车费为:%f\n",money);
}
else if ((clock>=23 || clock<5)&&miles>3)
{
money=13+1+2.3*(miles-3)*1.2;
printf("夜间车费为:%f\n",money);
}
else
{
money=14;
printf("费用为14\n");
}
return money;
}
int main()
{
printf("打的总费用:%.1f\n",taxifee(9,12)+taxifee(18,12));
return 0;
}
可以用个if else嵌套,我也刚学,互相指点指点……
#include <stdio.h>
float taxifee(int clock,int miles)
{
float money;
if(miles<=3)
{
money=14;
printf("费用为14\n");
}
if(clock>=23 || clock<5)
{
money=13+1+2.3*(miles-3)*1.2;
printf("夜间车费为:%f\n",money);
}
else
{
money=13+1+2.3*(miles-3);
printf("日间车费为:%f\n",money);
}
return money;
}
int main()
{
printf("打的总费用:%.1f\n",taxifee(9,12)+taxifee(18,12));
return 0;
}
我觉得时间条件跟路程条件应该是并列关系,但是路程条件应该在前面。