C++ 如何比较两个整型数组是否完全相同

来源:百度知道 编辑:UC知道 时间:2024/06/15 01:11:44
不知道该如何写代码 下面是我简化的一小段
#include <iostream>
using namespace std;
int main(){

int c[26]={0,2,3};
int d[26]={0,1,2,4};

for(int i=0;i<26;i++)
{
if(c[i]!=d[i])
{
cout<<"NO";
break;}
if((i=25)&&(c[25]==d[25]))
cout<<"YES";
}
system("pause");
return 1;
}
发现无法达到目的 只要这两个数组的第一个值相同就输出YES,不同就输出NO,不比较后面的值

memcmp() 也用过 发现也达不到目的 不知道问题出在哪了

if(c[i]!=d[i])
明显错了 只要第一次即 c[0]=d[0]就会输出yes
反之
可以先把两个数组从小到大排序 在逐个比较 若有不一样的就说明不一样 反之

#include <iostream>
using namespace std;
int main(){

int c[26]={0,2,3};
int d[26]={0,1,2,4};
int sign=0; /*sign为是否匹配设的标志,初始化为0;*/

for(int i=0;i<26;i++)
{
if(c[i]!=d[i])
{
cout<<"NO"<<endl;
sign=1; /*此时可以判断两数组不匹配,故sign设为1;*/
break;
}
}
if(sign==0) /*若经过for循环后sign没有变化,说明两数组是匹配的;*/
cout<<"YES"<<endl;
system("pause");
return 1;
}

int[] array1 = new int[3] { 1,2,3};
int[] array2 = new int[2] { 2, 1 };
int j = 0;
for (int i = 0; i < array1.Length; i++)
{
if (array1[i] == array1[j])
j++;
else
{
cout << "这两个整型数组不完全相同!";
break;
}
}

设个标识符 tag
#include