首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请赐教:一个航班程序。请可爱的您进来指点指点。解决思路

2012-04-16 
请赐教:一个航班程序。请可爱的您进来指点指点。起飞时间抵达时间8:00a.m10:16 a.m.11:19p.m1:31p.m12:47p.m

请赐教:一个航班程序。请可爱的您进来指点指点。
起飞时间 抵达时间
8:00a.m 10:16 a.m.
11:19p.m 1:31p.m
12:47p.m 3:00p.m
类似于这样的一个航班表,要求输入一个时间,程序选择起飞时间与用户输入最近的航班,显示相应的起飞时间和抵达时间。
 我只知道把输入和起飞时间都用从午夜开始的分钟数表示然后比较。但是其他的就没有主意了。请各位指点。

[解决办法]
直接用输入和起飞时间相减, 差值最小的就是最近的
[解决办法]
大概思路如下:

C/C++ code
#include <stdio.h>#define N 6int hour[] = {  8, 10, 11, 1, 12, 3};int minute[] = {  0, 16, 19, 31, 47, 0};int time[N];void creatTimeTable(int *p){  int i;  for (i = 0; i < N; i++)    *p++ = hour[i] * 60 + minute[i];}int nearestFlight(int *timeTable, int hour, int minute){  int *p = timeTable;  int i;  int time = hour * 60 + minute;  int flag;  int nearest;  nearest = *p;  flag = 0;  for (i = 1; i < N; i++) {    if (time - *p++ < nearest) {      nearest = time;      flag = 1;    }  }  return flag;}intmain(void){  creatTimeTable(time);  printf("%d\n", nearestFlight(time, 10, 20));  return 0;} 

热点排行