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语言如何写才能判断两个数组相等的主要内容,如果未能解决你的问题,请参考以下文章