如何判断数组的2个子数组和相等

 我来答
地瓜说机
2017-09-12 · TA获得超过2.9万个赞
知道大有可为答主
回答量:2.3万
采纳率:91%
帮助的人:1.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。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式