C++ 数组元素比较
C++ array elements comparison
我想比较两个arrays
,我试过这样:
#include <iostream>
using namespace std;
int main(){
int v1[10] = {1, 5, 77, 3, 4, 0, 2, 6, 8, 9};
int v2[10] = {20, 18, 2, 3, 4, 0, 1, 9, 6, 8};
int i,l,c=0,n=0;
//comparision
for(i=0; i<10; i++)
{
for(l=0;l<10;l++)
{
if ((v1[i] == v2[l]) && (c==0))
{
cout << v1[i] << " e " << v2[l] << " are common" << endl;
c = 1;
}
else if((n==0) && (l==10))
{
cout << v1[i] << " it s in only one array" << endl;
n = 1;
};
}
c=0,n=0;
}
system("pause");
return 0;
}
但它似乎对不常见的元素不起作用,程序只显示常见的元素而不显示不常见的元素。我不明白为什么。
有人可以帮助我吗?
提前感谢您的帮助。
你的l
永远不能是10,这是显示唯一元素的条件。循环将在 9 处停止。
我建议您只使用一个变量来标记唯一性。例如:
bool found = false;
for(i = 0; i < 10; i++)
{
for(l = 0; l < 10; l++)
{
if ((v1[i] == v2[l]))
{
cout << v1[i] << " e " << v2[l] << " are common" << endl;
found = true;
}
else if(!found && l==9)
{
cout << v1[i] << " it s in only one array" << endl;
}
}
found = false;
}
此外,如果想稍微更改代码,则只能在内循环之后进行检查:
for(int i = 0; i < 10; i++){
bool found = false;
for(int j = 0; j < 10; j++){
if ((v1[i] == v2[j])){
cout << v1[i] << " e " << v2[j] << " are common" << endl;
found = true;
}
}
if(!found){
cout << v1[i] << " is in only one array" << endl;
}
}
我想比较两个arrays
,我试过这样:
#include <iostream>
using namespace std;
int main(){
int v1[10] = {1, 5, 77, 3, 4, 0, 2, 6, 8, 9};
int v2[10] = {20, 18, 2, 3, 4, 0, 1, 9, 6, 8};
int i,l,c=0,n=0;
//comparision
for(i=0; i<10; i++)
{
for(l=0;l<10;l++)
{
if ((v1[i] == v2[l]) && (c==0))
{
cout << v1[i] << " e " << v2[l] << " are common" << endl;
c = 1;
}
else if((n==0) && (l==10))
{
cout << v1[i] << " it s in only one array" << endl;
n = 1;
};
}
c=0,n=0;
}
system("pause");
return 0;
}
但它似乎对不常见的元素不起作用,程序只显示常见的元素而不显示不常见的元素。我不明白为什么。 有人可以帮助我吗?
提前感谢您的帮助。
你的l
永远不能是10,这是显示唯一元素的条件。循环将在 9 处停止。
我建议您只使用一个变量来标记唯一性。例如:
bool found = false;
for(i = 0; i < 10; i++)
{
for(l = 0; l < 10; l++)
{
if ((v1[i] == v2[l]))
{
cout << v1[i] << " e " << v2[l] << " are common" << endl;
found = true;
}
else if(!found && l==9)
{
cout << v1[i] << " it s in only one array" << endl;
}
}
found = false;
}
此外,如果想稍微更改代码,则只能在内循环之后进行检查:
for(int i = 0; i < 10; i++){
bool found = false;
for(int j = 0; j < 10; j++){
if ((v1[i] == v2[j])){
cout << v1[i] << " e " << v2[j] << " are common" << endl;
found = true;
}
}
if(!found){
cout << v1[i] << " is in only one array" << endl;
}
}