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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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";

参考技术A

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

一、算法分析:

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。

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

以上是关于C语言如何写才能判断两个数组相等的主要内容,如果未能解决你的问题,请参考以下文章

C语言判断两个长度不等的字符数组是不是相等的方法

c语言中如何判断两个字符串相等

C语言 判断两个集合是不是相等

求一c语言程序,输入两个数,判断他们是不是相等

C语言编程判断两个矩阵是否相等(n阶矩阵)

C语言中判断两个数组内容是不是相同!