读书人

C面试题解决方案

发布时间: 2012-08-10 12:19:33 作者: rapoo

C面试题
写一个 C程序 有一组时间 12:00 12:34 13:26 求出离13:00最近的时间点是


[解决办法]

C/C++ code
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;} 

读书人网 >C语言

热点推荐