首页 > 试题广场 >

比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如

[问答题]

比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果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
函数返回:3
2) 输入:int array1[] = {1,3,5},int len1 = 3,int array2[] = {77,21,1,3,5,7},int len2 = 6
函数返回:0

#include <stdio.h>
int array_compare(int len1, int array1[], int len2, int array2[])
{
	if (len1 == 0 || len2 == 0)
		return 0;
	
	int count = 0, n = 0;
	n = (len1 < len2) ? len1 : len2;
	
	for (int i = 0; i < n; i++)
	{
		if (array1[len1-i-1] != array2[len2-i-1])
			count++;
	}
	
	return count;
}
int main()
{
	int array1[] = {1,3,5};
	int len1 = 3;
	int array2[] = {77,21,1,3,5,7};
	int len2 = 6;
    printf("%d", array_compare(len1,array1,len2,array2));
    return 0;
}

发表于 2020-03-27 15:18:16 回复(0)
#include <iostream>
#incldue <stdio>
#include <stdlib> 
int array_compare(int len1,int array1[],int len2,int array2[]){
    int count=0;
    int n=len1<len2?len1:len2;
    for(int i=0;i<n;i++){
        if(array1[len1-n-1]!=array2[len2-n-1])
            count++;
    }
    return count;
}

发表于 2015-06-25 09:04:38 回复(0)
#include #include #include int array_compare(int len1, int array1[], int len2, int array2[]) { int count = 0; for ( ; len1 >= 0 && len2 >= 0 ; len1--, len2--) { if (array1[len1 - 1] == array2[len2 - 1]) { count++; } } return count; } int main() { int result = 0; int array1[] = {1, 3, 5}; int len1 = 3; int array2[] = {77, 12, 1, 3, 5}; int len2 = 5; result = array_compare( len1, array1, len2, array2); printf("the result is %d", result); }
发表于 2014-11-13 22:59:03 回复(0)