比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果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 }
运行结果:
时间: 2024-10-14 08:00:30