问答详情
源自:5-14 综合练习

C语言5-14练习

#include<stdio.h>
#include<math.h>
int main()
{
	int clock1,miles1,clock2,miles2;
	float prise1,prise2,prise;
	printf("请输入自己的来回乘车时间和起点距终点的距离。\n");
	printf("(提示:时间请输入整点,并用24小时制,中间请用空格隔开)\n");
	printf("举个栗子:你上班时间6点,下班时间18点,起点和终点距离为8公里。\n");
	printf("输入:6 8 18 8\n");
	scanf("%d %d %d %d",&clock1,&miles1,&clock2,&miles2);
	if(clock1>=5&&miles1>0&&miles1<=3)
	{
		prise1=14;
	}
	else 
	{
		if(clock1>=5&&miles1>3)
	{
		prise1=14+(miles1-3)*2.3;
	}
		else if(clock1>=23||clock1<5)
	{
		prise1=(14+(miles1-3)*2.3)*1.2;
	}
	}
	if(clock2>=5&&miles2>0&&miles2<=3)
	{
		prise2=14;
	}
	else 
	{
		if(clock2>=5&&miles2>3)
	{
		prise2=14+(miles2-3)*2.3;
	}
		else if(clock2>=23||clock2<5)
	{
		prise2=(14+(miles2-3)*2.3)*1.2;
	}
	}
	prise=prise1+prise2;
	printf("车费一共是%f元.",prise);
	return 0;
}
	

哪位大神帮我看一下这个题目,在23点以后的加价不可以输出正确答案,但是零点到五点的加价可以输出正确答案。

提问者:蓝豆于南国 2017-03-16 23:40

个回答

  • 慕粉1238575637
    2017-03-17 08:57:21
    已采纳

    看第26行和31行,如果23点乘车,该执行if还是elseif呢?因为两个都成立,可以在前面两个if判断中加入&&clock1<=23。