数组比较(20分)
比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果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
注意是不相等元素~
1 #include<stdio.h> 2 int array_compare(int len1, int array1[], int len2, int array2[]) 3 { 4 int i,sum,p1,p2; 5 p1 = len1-1; 6 p2 = len2-1; 7 sum = 0; 8 if (len1 < len2) 9 { 10 for (i=0; i < len1; i++) 11 { 12 if (array1[p1--] != array2[p2--]) 13 sum++; 14 } 15 } 16 else 17 { 18 for (i=0; i < len2; i++) 19 { 20 if (array1[p1--] != array2[p2--]) 21 sum++; 22 } 23 } 24 return sum; 25 } 26 int main() 27 { 28 int i,len1,len2,array1[100],array2[100]; 29 scanf("%d",&len1); 30 for (i=0; i < len1; i++) 31 scanf("%d",&array1[i]); 32 scanf("%d",&len2); 33 for (i=0; i < len2; i++) 34 scanf("%d",&array2[i]); 35 printf("%d ",array_compare(len1,array1,len2,array2)); 36 return 0; 37 }