北京市出租车打车计费规则如下:1. 每公里单价计费2.3元2. 起步价13元(包含3公里)3. 晚上23点(含)至次日凌晨5点(不含)打车,每公里单价计费加收20%。4. 每次乘车加收1元钱的燃油附加税。小明每天上下班都要打车,公司和家的距离为12公里,上午上班时间为9点,下午下班时间为6点。请编写一个小程序计算小明每天打车的总费用。下面的是我的代码:#include <stdio.h>
int zongfeiyong(int time,int n)
{
int price=2.3,i,sum=0;//定义单价,单价增幅比,总费用
if(n>0&&n<=3)
{sum=13+1;}
else
{
if((time>=23&&time<=24)||(time>0&&time<5))
{i=1;}
else
{i=1.2;}
sum=(price*i)*(n-3)+13+1;
}
return sum;
}
int main()
{ int am,pm,l,sumam,sumpm; /*am早上的时间,pm下午的时间,l距离,sumam早上花费的费用,pm下午花费的费用*/
am=9;
pm=6;
l=12;
sumam=zongfeiyong(am,l);
printf("小明上午%d点打车花费了%d元!\n",am,sumam);
sumpm=zongfeiyong(pm,l);
printf("小明下午%d点打车花费了%d元!\n",pm,sumpm);
printf("小明每天打车的总费用是%d元!\n",sumam+sumpm);
return 0;
}下面我上面的程序计算得到的结果:小明上午9点打车花费了32元!小明下午6点打车花费了32元!小明每天打车的总费用是64元!但是慕课网给的参考答案是:#include <stdio.h>
double getTaxiPrice(int hours,int distance)
{
double totalPrice = 0.0; //定义打车费用
double perPrice = 2.3; //定义每公里单价计费
int startPrice = 13; //定义起步价
if(hours<0 || hours>24){
printf("请填写正确的时间\n");
return 0;
}
else if(!(hours>=5 && hours<23)) //判断打车时间是否要增加费用
{
perPrice *= 1.2; //费用增加20%
}
if(distance >3) //判断公里数
{
totalPrice = startPrice +(distance - 3)*perPrice; //计算价钱
}
else
{
totalPrice = startPrice;
}
totalPrice++; //加一块钱的燃油费
return totalPrice;
}
int main()
{
int moring = 9; //定义上午打车时间
int afternoon = 18; //定义下午打车时间
int distance = 12; //定义打车公里数
double totalPrice = 0; //定义总费用
if(getTaxiPrice(moring,distance) != 0)
{
totalPrice = getTaxiPrice(moring,distance); //调用计算费用的函数
}
else if(totalPrice != 0)
{
totalPrice += getTaxiPrice(afternoon,distance); //调用计算费用的函数
}
printf("小明每天打车的总费用是:%.2f\n",totalPrice); //输出
return 0;
}下面是参考答案的计算结果:小明每天打车的总费用是:34.70求大神解释一下我的程序哪里有问题?谢谢!
3 回答
昨夜小楼泣东风
TA贡献2条经验 获得超0个赞
if(getTaxiPrice(moring,distance) != 0) { totalPrice = getTaxiPrice(moring,distance); printf("早上的这句我运算啦\n");------------这一句输出啦,说明计算了早上的钱 } else if(totalPrice != 0) { totalPrice += getTaxiPrice(afternoon,distance); printf("晚上的这句我运算啦\n");-------这一句并没有输出,说明根本没进else if中 所以他根本没算晚上的钱 } printf("小明每天打车的总费用是:%.2f\n",totalPrice); return 0; } 我个人认为答案有问题。。。。它的答案只是算了早上上班的钱。。。。 当然你也可以用数学算算他一天花多少钱
昨夜小楼泣东风
TA贡献2条经验 获得超0个赞
if((time>=23&&time<=24)||(time>0&&time<5))
{i=1;}-----------------这里应该为i=1.2。晚上23点(含)至次日凌晨5点(不含)打车,每公里单价计费加收20%。
else
{i=1.2;}---------------这里应该为i=1
- 3 回答
- 0 关注
- 1587 浏览
添加回答
举报
0/150
提交
取消