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

请赐教:一个航班程序。请可爱的您进来指点指点。
起飞时间 抵达时间
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 6

int 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;
}
int
main(void)
{
  creatTimeTable(time);

  printf("%d\n", nearestFlight(time, 10, 20));
  return 0;
}