用c语言如何判断这两个数组是相等的? int a[5]={1,2,3,2,5}; int b[5]={1,2,3,2,5};

注意数组是无序的,且可能存在重复的元素。
2024-12-01 01:44:03
推荐回答(4个)
回答1:

先判断长度是不是相等
如果相等
用数组一中每个元素去分别和二中的比,只要在二中都能找到相等的,那个元素就被标记一下,下次不和他比
最后二中的都被标记了,说明完全相等

你自己实现吧
我感觉这个想法应该没错呢~~有什么不对的望提出啊~~

回答2:

这两个数组肯定不等啊,数组相等就只有里面元素及其顺序完全一致才行

回答3:

数组{1,2,3,4}和{2,1,4,3}相等吗?

回答4:

/*程序已测试OK*/

#include "stdio.h"

#include "conio.h"

int a[]={9,2,3,7,1,4,2,6,21,8};

int b[]={9,2,3,7,1,4,2,6,21,8};

/************************************************************/

/*排序                                                      */

/*   *Block 指向数组的指针                                  */

/*   Quantity 数据总数                                      */

/************************************************************/

void Seqencing(int *Block,unsigned int Quantity)

{

    unsigned int i,j;

    int n;

    for(i=0;i

    {

       for(j=i+1;j

       {

           if(*(Block+i)>*(Block+j))

           {

               n=*(Block+j);

               *(Block+j)=*(Block+i);

               *(Block+i) = n;

           }

       }

   }

}

/***********************************************************/

/*求是否相等                                               */

/*Quantity 数据总数                                        */

/***********************************************************/

char  Compare(unsigned int Quantity)

{

     int size1,size2;

     unsigned int i;

     if(sizeof(a) == sizeof(b))

     {

        for(i = 0; i

        {

            if(a[i] != b[i])return 0;    /*如果有不相等的则返回 0*/

        }

        return 1;

      }

    else

        return 0;       /*都相等的则返回 1*/

}

void main()

{

    int block;

    unsigned int i;

    block = sizeof(a)/2;  /*计算数组数据个数*/

    Seqencing(a,block);   /*对数组进行排序*/

    printf("\n\n-------------------------------------------------------------------------------\n\n");

    for(i=0; i

    {

        printf("a:%d\t",a[i]);   /*输出排序结果*/

    }

    printf("\n\n-------------------------------------------------------------------------------\n\n");

    block = sizeof(b)/2;

    Seqencing(b,block);

    printf("\n\n-------------------------------------------------------------------------------\n\n");

    for(i=0; i

    {

        printf("b:%d\t",b[i]);

    }

    printf("\n\n-------------------------------------------------------------------------------\n\n");

    if(Compare(block))           /*判断数组是否相等*/

         printf("result: a = b");/*输出判断结果*/

    else

         printf("result: a != b");

    getch();

}