首页 > 代码库 > 华为机考--数组比较
华为机考--数组比较
比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果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 }
运行结果:
华为机考--数组比较
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。