#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点以后的加价不可以输出正确答案,但是零点到五点的加价可以输出正确答案。
看第26行和31行,如果23点乘车,该执行if还是elseif呢?因为两个都成立,可以在前面两个if判断中加入&&clock1<=23。