#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";
并没有系统函数可以实现这个功能,需要自行编写函数:
一、算法分析:
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。
先判断数组长度是不是相等,
然后比较每个相同索引号的元素是不是相等