2012华为笔试题:比较数组不同元素个数
需积分: 50 171 浏览量
更新于2024-09-16
收藏 59KB DOC 举报
"2012年华为公司校园招聘的机试题目,主要涉及数组操作和比较,提供了一个用于比较两个数组中不同元素个数的函数实现。"
这篇内容是关于华为2012年校园招聘的笔试题目,主要考察了编程基础,特别是数组处理能力。题目要求编写一个名为`compare_array`的函数,该函数接收两个整数数组的长度以及数组本身作为参数,其目的是计算从两个数组的最后一个元素开始比较,直到第一个元素,这两个数组中不同元素的个数。
题目给出的具体例子有两个数组:`array1[5]={77,21,1,3,5}`和`array2[3]={1,3,5}`。按照题目要求,从`array1[4]`(即5)与`array2[2]`(即5)开始比较,直到`array1[2]`(即1)与`array2[0]`(即1)结束。在这个过程中,没有发现不同的元素,因此不同元素的个数为0。另一个例子是`array1[6]={77,21,1,3,5,7}`和`array2[3]={1,3,5}`,在这种情况下,从`array1[5]`(即7)开始比较,到`array1[3]`(即3)结束,有3个元素不同,即7、21和77。
函数`compare_array`的实现中,首先对两个数组进行了反转操作,这是因为题目要求从数组末尾开始比较。反转后,数组的末尾元素变成了起始元素,这样可以直接从末尾开始遍历。然后,根据较小数组的长度(`small`)进行遍历,如果当前索引位置的元素相同,则减去1,表示没有找到不同的元素。最后返回`num`,即为不同元素的个数。
在提供的代码中,还包含了一些未使用的`printf`语句,这些原本可能是用于调试的,用于打印倒置后的数组和最终的计数值。`main`函数中调用了`compare_array`,并传入了示例数组和它们的长度,用于测试该函数的功能。
这个题目和解决方案展示了基础的数组操作和逻辑思维,是编程面试中常见的类型。它考察了程序员对数组的理解、反转操作的实现以及如何有效地比较数组元素来找出差异。对于准备类似面试或笔试的求职者来说,理解和掌握这类问题的解决方法是非常重要的。
2012-03-15 上传
2011-10-05 上传
2023-07-28 上传
2024-01-14 上传
2023-08-03 上传
2023-08-17 上传
2024-08-15 上传
2023-05-01 上传
zhangfeng1988523
- 粉丝: 0
- 资源: 1
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全