从两个数组的最后一个元素比较两个数组中不同元素的个数,如有 array1[5]={77,21,1,3,5}, array2[3]={1,3,5},从 array1[4]与 array2[2]比较开始,到 array1[2] 与 array[0]比较结束。这样得出它们不同的元素个数为 0,若 array1[6]={77,21,1,3,5,7},那 么他们不同的元素为 3。
函数原型为 int compare_array( int len1, int array1[], int len2, int array2[] ); 其中,len1 与 len2 分别为数组 array1[]和 array2[]的长度,函数返回值为两个数组不同元素的个数。
解析:
/* diff_num.cpp */
#include <stdio.h>
int
compare_array(
int
len1,
int
array1[],
int
len2,
int
array2[] )
{
int
i, t, small, num =
0;
/* 把两数组倒置 */
for
( i =
0; i < len1 /
2; i++ )
{
t = array1[i];
array1[i] = array1[len1 - i -
1];
array1[len1 - i -
1] = t;
}
for
( i =
0; i < len2 /
2; i++ )
{
t = array2[i];
array2[i] = array2[len2 - i -
1];
array2[len2 - i -
1] = t;
}
if
( len1 > len2 )
small = len2;
else
small = len1;
num = small;
for
( i =
0; i < small; i++ )
{
if
( array1[i] == array2[i] )
num--;
}
printf(
"num=%d\n", num );
return(num);
}
void
main()
{
int
array1[5] = {
77,
21,
1,
3,
5
}, array2[3] = {
1,
3,
5
};
int
len1 =
5, len2 =
3;
compare_array( len1, array1, len2, array2 );
}