为了账号安全,请及时绑定邮箱和手机立即绑定

资料下载的demo里最后判断总数是不是有问题

#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)	printf("小明每天打车的总费用是:%.2f\n",totalPrice);	//输出
	return 0;    
}

在最后的

	if(getTaxiPrice(moring,distance) != 0)	{
		totalPrice = getTaxiPrice(moring,distance);	//调用计算费用的函数
	} 
	else
	{
		totalPrice += getTaxiPrice(afternoon,distance);	//调用计算费用的函数
	}

这里,先使用if判断早晨出门打车的 钱是否不等于,经过判断是不等于零,于是执行

totalPrice = getTaxiPrice(moring,distance);	

然后后面的

	else if(totalPrice != 0)

这一句按理说就不会执行了吧,因为之前的if语句已经判断为真 了。这样下来就只判断了if中早晨出门的钱,而没有判断晚上回家的钱。所以我认为应该吧else if换成if。也就是将demo中换为两个独立的if条件句

求大神看一下我的理解对么?

正在回答

3 回答

/*
怎么说呢...这个题目给出了具体的上班时间和下班时间,所以你把它当做一个基本的数学题就好了,没有必要写一
大串代码,如果变量的值不确定的话,你就一定要用if...else if...这个语句了
*/
#include <stdio.h>
int main()
{
    double s;
    s=13+2.3*(12-3)+1;
    printf("%f",s*2);
    return 0;
}


0 回复 有任何疑惑可以回复我~
#1

Libra_x 提问者

恩,这确实是核心要实现的。但是为了符合程序设计原理官方给的demo是相对严谨一点
2018-07-31 回复 有任何疑惑可以回复我~
#2

修裾欲溯空 回复 Libra_x 提问者

嗯嗯嗯
2018-07-31 回复 有任何疑惑可以回复我~

你的代码主要有以下的一些问题:1.主函数中并没有调用你自己写的函数,2.明明一个简单的数学题为什么写这么多的代码?

0 回复 有任何疑惑可以回复我~
#1

Libra_x 提问者

不好意思,把代码复制过来的时候丢了if语句,现在已经更新了。这代码是课程里给的不是我写的,只是我看最后有点问题,我把原代码运行时得出结果为69.4,把else if改为 else 得出结果仍为69.4.只是觉的从逻辑上不符合。if eles条件句中不是第一个if如果判断为真,那么else if就不再进行了吗?
2018-07-31 回复 有任何疑惑可以回复我~
#2

Libra_x 提问者

刚刚回复错了 如果按慕课网给的demo是34.7.如果把else去掉变成两个if语句那么得到的结果为69.4.。 并且根据实际情况,一天来回的车费是69.4.并非deomo给的34.7
2018-07-31 回复 有任何疑惑可以回复我~
#3

Libra_x 提问者

大佬有更精简的的代码?发出来分享一下呗
2018-07-31 回复 有任何疑惑可以回复我~

我运行了一下发现你的代码结果输出为0...

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

资料下载的demo里最后判断总数是不是有问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信