华为机考--数组比较

比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2个数组长度不等,则只比较较短长度数组个数元素。请编程实现上述比较,并返回比较中发现的不相等元素的个数

比如:

数组{1,3,5}和数组{77,21,1,3,5}按题述要求比较,不相等元素个数为0

数组{1,3,5}和数组{77,21,1,3,5,7}按题述要求比较,不相等元素个数为3 

要求实现函数:

int array_compare(int len1, int array1[], int len2, int array2[])

【输入】 int len1:输入被比较数组1的元素个数;

int array1[]:输入被比较数组1;

int len2:输入被比较数组2的元素个数;

int array2[]:输入被比较数组2;

【输出】 无

【返回】 不相等元素的个数,类型为int

示例:

1) 输入:int array1[] = {1,3,5},int len1 = 3,int array2[] = {77,21,1,3,5},int len2 = 5

函数返回:0

2) 输入:int array1[] = {1,3,5},int len1 = 3,int array2[] = {77,21,1,3,5,7},int len2 = 6

函数返回:3

C++编程实现:

 需要说明的是由于采用标准输入cin得到char类型,无法识别大于9的数,但是不妨碍验证接口函数。

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int array_compare(int len1, int array1[], int len2, int array2[])
 5 {
 6     int count=0;
 7     int len=len1;
 8     if (len>len2) {
 9         len=len2;
10     }
11     int i;
12     for (i=1; i<=len; i++) {
13         if (array1[len1-i]!=array2[len2-i]) {
14             count++;
15         }
16     }
17     return count;
18 }
19 
20 int main()
21 {
22     char s1[50],s2[50];
23     int i;
24     while (cin>>s1>>s2) {
25         int array1[50],array2[50];
26         int len1=0,len2=0;
27         for (i=0; s1[i]; i++) {
28             array1[i]=s1[i]-'0';
29             len1++;
30         }
31         for (i=0; s2[i]; i++) {
32             array2[i]=s2[i]-'0';
33             len2++;
34         }
35         cout<<array_compare(len1, array1, len2, array2)<<endl;
36     }
37     return 0;
38 }

运行结果:

原文地址:https://www.cnblogs.com/LiuYujie/p/3965043.html