#include<iostream>
using namespace std;
int main()
{
int n,m;
cin >> n;
int a[n];//如果编译器不允许这样写
补充
//int* a =(int*)malloc(sizeof(int)*n);
for(int i = 0; i < n; i++)
{
cin >> a[i];
}
cin >> m;
int b[m];
for(int i = 0; i < m; i++)
{
cin >> b[i];
}
//指定两个和存放数据的等长的 判断数组
bool a1[n] = {false},b1[m] = {false};
//两个数组之间遍历,将出现的数字,全部置成true
for(int i = 0; i < n; i++)
{
for(int j = 0; j < m; j++)
{
if(a[i] == b[j])
{
a1[i] = true;
b1[j] = true;
}
}
}
//然后每个数组在分别自己遍历
for(int i = 0; i < n; i++)
{
for(int j = i+1; j < n;j++)
{
if(a[i] == a[j])
{
a1[j] = true;
}
}
}
for(int i = 0; i < m; i++)
{
for(int j = i+1; j < m;j++)
{
if(b[i] == b[j])
{
b1[j] = true;
}
}
}
//注意输出格式
int flag2 = 1;
for(int i = 0; i<n;i++)
{
if(!a1[i]&&flag2==1)
{
cout << a[i];
flag2 = 0;
}
else if(!a1[i]&&flag2==0)
{
cout << ' ' << a[i];
}
}
if(flag2 == 0)
for(int j = 0; j < m; j++)
{
if(!b1[j])
cout << ' ' << b[j];
}
else if(flag2 == 1)
{
int flag1 = 1;
for(int j = 0; j < m; j++)
{
if(!b1[j]&&flag1 == 1)
{
cout << b[j];
flag1=0;
}
else if(!b1[j]&&flag1 == 0)
{
cout << ' ' << b[j];
}
}
}
return 0;
}
7-9 找出不是两个数组共有的元素 (20 分) C++
于 2022-03-24 13:41:54 首次发布