C面试题
写一个 C程序 有一组时间 12:00 12:34 13:26 求出离13:00最近的时间点是
[解决办法]
int _tmain(int argc, _TCHAR* argv[]){ char test_time[] = "13:00"; char test_times[][TIME_LEN] = {"12:00", "12:34", "13:26"}; char (*a)[TIME_LEN] = test_times;//时间缓存指针,每个时间5个字节 int nearest_id;//记录最近的时间的下标 int nearest_offset = -1;//记录最小的差值 int cur_offset; //记录当前差值 int time_number = sizeof(test_times) / TIME_LEN;//时间个数 int i; for(i = 0; i < time_number; i++) { cur_offset = CalOffset(test_time, *(a + i)); if(cur_offset < 0) { cur_offset = 0 - cur_offset; } if(nearest_offset == -1) { nearest_offset = cur_offset; }else { if(nearest_offset > cur_offset) { nearest_offset = cur_offset; nearest_id = i; } } } printf("距离%s最近的时间点是:%s\r\n", test_time, a + nearest_id); system("pause"); return 0;}