贴子上看到的华为笔试题,做了俩小时,做出来了,就是效率有点低。


这个题目要求是,

#define TIME_TAB_MAX 6
char g_time_tab[TIME_TAB_MAX][6] = {
 "13:46",
 "08:23",
 "23:12",
 "05:59",
};
char g_sleep_time[6] = {
 "13:12"
};
用c编一个程序,在g_time_tab中找到距离char g_sleep_time[6]里面时间最近的那个时间,并输出。

**************************************************************************************************************

                                                                            代码

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#include<stdio.h>
#include<math.h>
#define TIME_TAB_MAX 6
char g_time_tab[TIME_TAB_MAX][6] = {
 "13:46",
 "08:23",
 "23:12",
 "05:59",
};
char g_sleep_time[6] = {
 "13:12"
};
int g_time_number(char *p )
{
 int a[6];
 int i,b;
 for(i = 0;*p != '\0';i++,*(p++))
 {
  if(*p != ':')
  {
   a[i] = *p - '0';
   //printf("a[%d] = %d\n",i,a[i]);
  }
  else
  {
   i--;
   continue;
  } 
 }
 b = (a[0]*10+a[1]) * 60 + a[2] * 10 + a[3];
 return b;
 
}
int main(void)
{
 int a[TIME_TAB_MAX] ;
 int i,m,n,k,temp,j;
 n = 500;
 k = 1;
 m = g_time_number(g_sleep_time);
 for(i = 0;i < TIME_TAB_MAX;i++)
 {
  a[i] = g_time_number(g_time_tab[i]);
  //printf("%d\n",abs(a[i] - m));
  if(abs(a[i] - m) < n)
  {
   n = abs(a[i] - m);
   temp = a[i];
   k = i;
  }
 }
 
 
 printf("g_time_tab[%d] = %d:%d%d",k,temp/60,(temp%60)/10,(temp%60)%10);

 printf("\n");
 
 return 0;
}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                                                            代码

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

时间: 2024-11-18 00:11:33

贴子上看到的华为笔试题,做了俩小时,做出来了,就是效率有点低。的相关文章

华为笔试题:递归打印输出子字符串

一.文章来由 一道面试题而已~~~ 二.题目 从n个不同字符中任取m个字符组合 描述: 题目描述: 输入含有n个字符的字符串,字符串中没有重复字符,任取m个字符进行组合,按字符原位置顺序(从左至右)依次输出所有组合形式的字符串,每种组合间使用空格隔开. 例如: 1)输入字符串是"abc", m = 2, 则输出"ab ac bc". [说明]输出"ac bc ab"和"ab bc ac"是不正确的,因为未按原字符位置顺序输出)

华为笔试题10道

1 求两个长长整型的数据的和并输出 #include <iostream> using namespace std; void main() { char num1[50]; char num2[50]; cin.getline(num1,50); cin.getline(num2,50); int len1 = strlen(num1); int len2 = strlen(num2); int maxlen = len1 > len2 ? len1 : len2; char* sum

华为面试题

1.static有什么用途?(请至少说明两种)     1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变.     2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问.它是一个本地的全局变量.     3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用.那就是,这个函数被限制在声明它的模块的本地范围内使用   2.引用与指针有什么区别?     1) 引用必须被初始化,指针不必.     2) 引用初

jquery js-今天做了一道神奇的笔试题

问题描述 今天做了一道神奇的笔试题 如何用一行jquer实现动画轮播 <div class="slide"> <img src="1.png"> <img src="2.png"> <img src="3.png"> <img src="4.png"> </div> 解决方案 也就是你运气好,让别的看见又得告诉你思路了 var spee

昨天做了套C++笔试题,面试官说从代码看出编程缺经验

问题描述 昨天做了套C++笔试题,面试官说从代码看出编程缺经验 忽略字母大小写,下面是我当时写的代码,求各位大婶指教怎么改进不会让人觉得缺经验,或者贴下你的代码,感谢 { if((s1==null)||(s2==null)) exit(1); int c='a'-'A',i=0; char *temps1=s1,*temps2=s2; while(*temps1!='') { int i1=0; while((*temps1==*temps2)||({*temps1+c)==*temps2)||

Java面试笔试题大汇总(最全+详细答案)

声明:有人说, 有些面试题很变态,个人认为其实是因为我们基础不扎实或者没有深入.本篇文章来自一位很资深的前辈对于最近java面试题目所做的总结归纳,有170道题目 ,知识面很广 ,而且这位前辈对于每个题都自己测试给出了答案 ,如果你对某个题有疑问或者不明白,可以电脑端登录把题目复制下来然后发表评论,大家一起探讨,也可以电脑端登录后关注我给我发私信,我们一起进步! 以下内容来自这位前辈 2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅读了以后发现里面的很多题

C++笔试题汇总(45题)

本文转自:<程序员必看c++笔试题汇总>,经过整理正文如下: 本文通过对程序员笔试过程的总结,对程序员c++笔试题进行了汇总.希望能与大家共同分享.下面是一些常见题型: 1.求下面函数的返回值(微软) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } 假定x = 9999. 答案:8 思路:将x转化为2进制,看含有的1的个数. 2. 什么是"引用"?申明和使用"引

程序员必看 c++笔试题汇总

本文通过对程序员笔试过程的总结,对程序员c++笔试题进行了汇总.希望能与大家共同分享.下面是一些常见题型: 1.求下面函数的返回值(微软) {   int countx = 0;   while(x)   {   countx ++;   x = x&(x-1);   }   return countx;   }  假定x = 9999. 答案:8 思路:将x转化为2进制,看含有的1的个数. 2. 什么是"引用"?申明和使用"引用"要注意哪些问题? 答:引用

要出发公司笔试题

前言 招聘高峰期来了,大家都非常积极地准备着跳槽,那么去一家公司面试就会有一堆新鲜的问题,可能不会,也可能会,但是了解不够深.本篇文章为群里的小伙伴们去要出发公司的笔试题,由笔者整理并提供笔者个人参考答案.注意,仅供参考,不代表绝对正确. 参考答案不唯一,大家可以根据自己的理解回答,没有必要跟笔者的一样.参考笔者的答案,也许给你带来灵感! 题目照 1.编程规范问题 这题看不清楚,不过可以看得出来是编程规范问题.所以呢,笔者也就没有办法说明哪些不合理了.不过笔者曾经为公司的出过一个编程规范文档,后