c我正在编写一个程序,要求用户以 24 小时格式输入时间并播放计划航班的最接近时间



分钟,使用24小时制)程序显示航班的出发和到达时间,其起飞时间与用户输入的时间最接近?出发时间到达时间上午8:00 上午10:16
上午9:43 上午 11:52 上午11:19 上午 1:31 下午12:47 下午 3:00 下午2:00 下午 4:08 下午3:45 下午 5:55 下午晚上7:00 晚上9:209: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;
}

最新更新