[英]Given a time in -hour AM/PM format, convert it to military (24-hour) time
[英]I am writing a program which ask user to enter time in 24 hour format and diplay closest departute time of schedule flight
分鍾,使用24小時制),程序將顯示其出發時間與用戶輸入的時間相近的航班的出發和到達時間? 出發時間到達時間8:00 am 10:16 am
上午9:43上午11:52上午11:19下午1:31 12:47下午3:00 pm 2:00 pm 4:08 pm 3:45 pm 5:55 pm 7:00 pm 9:20 pm 9:下午45時11:58下午
#include<stdio.h>
int main (void){
int dept1,dept2,dept3,dept4,dept5,dept6,dept7,dept8,hh,mm,entertime;
printf("Enter a time in 24-hour format:");
scanf("%d:%d",&hh,&mm);
dept1=8*60;
dept2=9*60+43;
dept3=11*60+19;
dept4=12*60+47;
dept5=14*60;
dept6=15*60+45;
dept7=19*60;
dept8=21*60+45;
entertime=hh*60+mm;
if(entertime<=dept1){
printf("Closet Departure time is 8:00 A.M,arriving at 10:16 A.M");
}else if(entertime<=dept2){
printf("Closet Departure time is 9:43 A.M,arriving at 11:52 A.M");
}else if(entertime<=dept3){
printf("Closet Departure time is 11:19 A.M,arriving at 1:31 P.M");
}else if(entertime<=dept4){
printf("Closet Departure time is 12:47 P.M,arriving at 3:00 P.M");
}else if(entertime<=dept5){
printf("Closet Departure time is 02:00 P.M,arriving at 4:08 P.M");
}else if(entertime<=dept6){
printf("Closet Departure time is 03:45 P.M,arriving at 5:55 P.M");
}else if(entertime<=dept7){
printf("Closet Departure time is 07:00 P.M,arriving at 9:20 P.M");
}else if(entertime<=dept8){
printf("Closet Departure time is 09:45 P.M,arriving at 11:58 P.M");
}
return 0;
}
我已將小時和分鍾表示為例如13:15 = 13 * 60 + 15 = 795分鍾,因此它將接近12:47 pm,即12 * 60 + 47 = 767分鍾
但沒有得到任何輸出
問題是,如果我輸入13:15(13 * 60 + 15 = 795),則程序應顯示12:47 pm出發時間
既然你想最接近輸入的時間出發的時間,你不能比較entertime
到發車時間,但到了次中途之間連續的發車時間,如代替
if(entertime<=dept1)
寫
if (entertime <= (dept1+dept2)/2)
最后刪除
if(entertime<=dept8)
以使用戶能夠在較早的航班都不適合時獲得最新的航班。
使用這種方法要容易得多,您還可以使用2D陣列使其變得更加簡單。
#include<stdio.h>
int main (void){
int hh,mm,entertime;
int dept[8] = {8*60,9*60+43,11*60+19,12*60+47,14*60,15*60+45,19*60,21*60+45};
printf("Enter a time in 24-hour format:");
scanf("%d:%d",&hh,&mm);
entertime=hh*60+mm;
if(entertime<=(dept[0]+dept[1])/2 || entertime>=dept[7]&&entertime<2*60){
printf("Closet Departure time is 8:00 A.M,arriving at 10:16 A.M");
}else if(entertime<=(dept[1]+dept[2])/2){
printf("Closet Departure time is 9:43 A.M,arriving at 11:52 A.M");
}else if(entertime<=(dept[2]+dept[3])/2){
printf("Closet Departure time is 11:19 A.M,arriving at 1:31 P.M");
}else if(entertime<=(dept[3]+dept[4])/2){
printf("Closet Departure time is 12:47 P.M,arriving at 3:00 P.M");
}else if(entertime<=(dept[4]+dept[5])/2){
printf("Closet Departure time is 02:00 P.M,arriving at 4:08 P.M");
}else if(entertime<=(dept[5]+dept[6])/2){
printf("Closet Departure time is 03:45 P.M,arriving at 5:55 P.M");
}else if(entertime<=(dept[6]+dept[7])/2){
printf("Closet Departure time is 07:00 P.M,arriving at 9:20 P.M");
}else if(entertime<=dept[7]){
printf("Closet Departure time is 09:45 P.M,arriving at 11:58 P.M");
}else{
printf("Not a valid time input");
}
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.