C语言如何写才能判断两个数组相等

2024-11-27 20:25:50
推荐回答(3个)
回答1:

#include

intmain()

{

inti=0;

intj=0;

intarr1[]={1,2,3,4,5};

intarr2[]={1,2,7,4,9};

for(i=0;i

{

for(j=0;j

{

if(arr1[i]==arr2[j])

{

printf("存在相同元素");

break;

}

}

break;

}

return0;

}

扩展资料

C++比较两个数组是否相等

constintSIZE=5;

intarrayA[SIZE]={5,10,15,20,25};

intarrayB[SIZE]={5,10,15,20,25};

boolarraysEqual=true;//标志变量

intcount=0;//循环控制变量

//确定元素是否包含相同的数据

while(arraysEqual&&count

{

if(arrayA[count]!=arrayB[count])

arraysEqual=false;

count++;

}

//显示合适的消息

if(arraysEqual)

cout<<"Thearraysareequal.\n";

else

cout<<"Thearraysarenotequal.\n";

回答2:

并没有系统函数可以实现这个功能,需要自行编写函数:

一、算法分析:

1、两个数组相等,需要类型相同,长度相同,各个元素值及顺序相同。

2、根据数组相等的含义,类型无需判断,因为类型不同本身就没有可比性。长度及元素值需要编写代码判断。 

二、参考代码:

以整型数组为例,可以编写函数如下:

int array_cmp(int *a, int al, int *b, int bl)
{
    int i;
    if(al!=bl) return 0;//长度不等,返回0.
    for(i = 0; i < al; i ++)
        if(a[i]!=b[i]) return 0;//出现不相等元素,返回0.
    return 1;//完全相等,返回1。
}

三、优化代码:

在C语言中有内存比较函数memcmp, 可以利用这一函数简化步骤,提高效率。

参考代码如下:

int array_cmp(int *a, int al, int *b, int bl)
{
    int i;
    if(al!=bl) return 0;//长度不等,返回0.
    return memcmp(a,b,sizeof(*a)*al) == 0;//返回结果。
}

注意,使用memcmp需要引用头文件string.h。

回答3:

先判断数组长度是不是相等,
然后比较每个相同索引号的元素是不是相等