首页 > 试题广场 >

从两个数组的最后一个元素比较两个数组中不同元素的个数。

[问答题]
 从两个数组的最后一个元素比较两个数组中不同元素的个数,如有 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[]的长度,函数返回值为两个数组不同元素的个数。 

两个字符串倒序排列看短的


发表于 2018-07-15 15:10:16 回复(0)
/* 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 );
}


发表于 2014-11-15 14:38:43 回复(0)