C语言如何写才能判断两个数组相等
#include<stdio.h>
intmain()
{
inti=0;
intj=0;
intarr1[]={1,2,3,4,5};
intarr2[]={1,2,7,4,9};
for(i=0;i<sizeof(arr1)/sizeof(arr1[0]);i++)
{
for(j=0;j<sizeof(arr2)/sizeof(arr2[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<SIZE)
{
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。
然后比较每个相同索引号的元素是不是相等