小试身手__一道华为机试题

        临走前,练练手,网上随便找了一道华为的机试题,权当练手,由于是第一题,题目相对比较简单,大概花了十分钟搞定。

        “1.从两个数组的最后一个元素比较两个数组中不同元素的个数,如有array1[5]={77,21,1,3,5}, array2[3]={1,3,5},从array1[4]array2[2]比较开始,到array1[2]array[0]比较结束。这样得出它们不同的元素个数为0,若array1[6]={77,21,1,3,5,7},那么他们不同的元素为3

  函数原型为 int compare_array( int len1, int array1[], int len2, int array2[] );

  其中,len1len2分别为数组array1[]array2[]的长度,函数返回值为两个数组不同元素的个数。”

 

#include <stdio.h>

int compare_array(int len1, int array1[], int len2, int array2[])
{
	int countOfSame = 0;
	int len = 0;
	int i=0;
	if (len1 > len2)
	{
		len = len2;
	}
	else 
    {
		len = len1;
	}

	for (i; i<len; i++)
	{
		if (array1[len1-i]==array2[len2-i])
			countOfSame++;
	}
	return countOfSame;

}

int main(void)
{
	int array1[6] = {7,12,1,2,3,4};
	int array2[5] = {12,7,1,3,5};
     int count;
	 count = compare_array(6, array1, 5, array2);
	 printf("Number of same elementis %d\n", count);
	return 0;
}

            大致思路:先比较得出两个数组长度中的较小值len,从两个数组最后一个数值开始比较,若相同则计数增1,,直到比较所有len个从数组尾部起始对应的两个数组中的元素值。

       嗯,每天小练一把!

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值