编写程序以检查两个数组是否被加扰或包含不同的数字

时间:2014-10-25 17:35:28

标签: c arrays

int scrambled( int a[], int b[], int len )
{
    int check[len];
    for ( int i=0; i<len; i ++)
    {
        check[i] = 0;
    }
    for ( int i=0; i<len; i++ )
    {
        int flag = 0;
        for ( int j=0; j<len; j++)
        {
            if( b[j] == a[i] && check[j] != 1  && flag == 0)
            {
                check[j] = 1;
                flag = 1;
            }

        }
        if (flag = 0)
        {
            return 0;
        }
        else
        {
            flag = 0;
        }

    }
    return 1;
}

int main( void )
{
    int a[3] = {10, 15, 20};
    int b[3] = {10, 20, 15};

    if( scrambled( a, b, 3 ) == 1 )
    {
        printf( "b is a scrambled version of a\n" );
    } else {
        printf( "b has different contents to a\n" );
    }

    return 0;
}

这是我检查任何两个数组的程序,看看这两个数组是否是彼此的加扰版本,或者它们是否包含不同的内容。

我不允许操纵main函数,因此我只允许使用顶部的scrambled函数进行调整。

但出于某种原因,我的功能一直在说难以解决的情况,我不知道如何解决这个问题?

0 个答案:

没有答案