如果输入时间是5:06那么换成分钟数应该是306 < 615/2,但是这个时候最近的应该是8:00 a.m.那班与输出结果不符。要不要换成(615/2-135),诚心求问,谢谢。

如果输入时间是5:06那么换成分钟数应该是306 < 615/2,但是这个时候最近的应该是8:00 a.m.那班与输出结果不符。要不要换成(615/2-135),诚心求问,谢谢。

以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
根据题目要求,我们需要将表格中的时间转换为从午夜开始的分钟数,并通过对用户输入的时间和分钟数进行比较来确定最近的起飞时间。首先,我们需要将用户输入的时间转换为分钟数,然后使用if语句进行比较。
在这个例子中,用户输入的时间是13:15,转换为分钟数为13×60+15=795。我们需要将这个时间与表格中的起飞时间进行比较,找出最接近的起飞时间。
根据表格,我们可以看到有以下起飞时间(以分钟数表示):
我们可以将这些时间分为两组,一组是上午的航班,另一组是下午的航班。对于上午的航班,我们可以通过计算相邻两个起飞时间的中数来判断最近的起飞时间。例如,对于8:00和9:43的起飞时间,它们的中数为(480+583)/2=531.5。如果用户输入的时间小于这个中数,那么最近的起飞时间就是8:00;否则,我们需要继续比较其他时间段。
对于下午的航班,我们同样可以使用这种方法进行判断。例如,对于11:19和12:47的起飞时间,它们的中数为(679+767)/2=723。如果用户输入的时间大于这个中数且小于下一个时间段的中数,那么最近的起飞时间就是12:47;否则,我们需要继续比较其他时间段。
根据这个方法,我们可以得到以下代码:
#include <stdio.h>
int main(void){
int hour, minute;
int input_minutes;
printf("Enter a 24-hour time:");
scanf("%d:%d", &hour, &minute);
input_minutes = hour * 60 + minute;
if (input_minutes < (615) / 2){
printf("Closet departure time is 9:45 PM, arriving at 11:58 PM");
} else if (input_minutes < (8 * 60 + 9 * 60 + 43) / 2){
printf("Closet departure time is 8:00 AM, arriving at 10:16 AM");
} else if (input_minutes < (9 * 60 + 43 + 11 * 60 + 19) / 2){
printf("Closet departure time is 9:43 AM, arriving at 11:52 AM");
} else if (input_minutes < (11 * 60 + 19 + 12 * 60 + 47) / 2){
printf("Closet departure time is 11:19 AM, arriving at 1:31 PM");
} else if (input_minutes < (12 * 60 + 47 + 14 * 60) / 2){
printf("Closet departure time is 12:47 PM, arriving at 3:00 PM");
} else if (input_minutes < (14 * 60 + 16 * 60) / 2){
printf("Closet departure time is 2:00 PM, arriving at 5:55 PM");
} else if (input_minutes < (16 * 60 + 55 + 17 * 60) / 2){
printf("Closet departure time is 3:00 PM, arriving at 7:00 PM");
} else if (input_minutes < (17 * 60 + 7 * 60 + 30) / 2){
printf("Closet departure time is 4:08 PM, arriving at 9:20 PM");
} else if (input_minutes < (19 * 60 + 30 + 21 * 60 + 45) / 2){
printf("Closet departure time is 5:55 PM, arriving at 11:58 PM");
} else if (input_minutes < (21 * 60 + 45 + 23 * 60) / 2){
printf("Closet departure time is 7:00 PM, arriving at 11:58 PM");
} else {
printf("Closet departure time is 9:45 PM, arriving at 1:30 AM");
}
return 0;
}
这段代码会根据用户输入的时间,输出最接近的起飞时间和抵达时间。