| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2149 人关注过本帖, 2 人收藏
标题:华为的一道面试题--活跃气氛,顺便散分
只看楼主 加入收藏
jokerskill
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:392
专家分:554
注 册:2012-3-4
收藏
得分:6 
分啊
2012-06-17 16:54
lov465584776
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-6-16
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>

#define TIME_TAB_MAX 10
#define ONEDAY 1440
char g_tab_time[TIME_TAB_MAX][6] =

 {
     "22:08",
     "08:31",
     "18:25",
     "21:35",
     "01:35",
     "23:59",
     "01:03",
     "09:34",
     "07:23",
     "09:59"

 };
char g_sleep_time[6] ="00:03";
int charconvertint(char c){
    int i=c;
    switch(c)
    {
    case 48:
        return 0;
    case 49:
        return 1;
    case 50:
        return 2;
    case 51:
        return 3;
    case 52:
        return 4;
    case 53:
        return 5;
    case 54:
        return 6;
    case 55:
        return 7;
    case 56:
        return 8;
    case 57:
        return 9;
    default:
        return 0;
    }
}
int converttime(char *time){
    return (charconvertint(time[0])*10+charconvertint(time[1]))*60+(charconvertint(time[3])*10+charconvertint(time[4]));
}
int nearTime(char sleep_time[],char tab_time[][6]){
    int sleep_time_int=0;
     int tab_time_int=0;
    int sum[10]={0};
    int i=0,j=0;
    int min=0;
    sleep_time_int=converttime(sleep_time);
    for(i=0;i<10;i++)
    {
        tab_time_int=converttime(tab_time[i]);
        if(sleep_time_int>tab_time_int)
        {
            sum[i]=((sleep_time_int-tab_time_int)<(tab_time_int+ONEDAY-sleep_time_int)?(sleep_time_int-tab_time_int):(tab_time_int+ONEDAY-sleep_time_int));
        }
        else if(sleep_time_int<tab_time_int)
        {
            sum[i]=((tab_time_int-sleep_time_int)<(sleep_time_int+ONEDAY-tab_time_int)?(tab_time_int-sleep_time_int):(sleep_time_int+ONEDAY-tab_time_int));
        }
        else
            return i;
    }
i=0;
    min=sum[0];
    while(i<10)
    {
        if(min>=sum[i])
        {
            min=sum[i];
            j=i;
        }
        i++;
    }
    return j;
}
int main(){
    int k=0;
    k=nearTime(g_sleep_time,g_tab_time);
    printf("%s\n",g_tab_time[k]);
}


抄袭了一点楼上的的,请不要介意。
2012-06-18 00:25
qq124753652
Rank: 1
等 级:新手上路
帖 子:6
专家分:1
注 册:2012-6-18
收藏
得分:0 
深奥,新手看不懂
2012-06-18 09:29
快速回复:华为的一道面试题--活跃气氛,顺便散分
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018133 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved