给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数n(≤20),随后是n个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。 输入样例: 10 3 -5 2 8 0 3 5 -15 9 100 11 6 4 8 2 6 -5 9 0 100 8 1 输出样例: 3 5 -15 6 4 1
时间: 2023-06-05 09:48:05 浏览: 162
题目描述
给定两个整型数组,本题要求找出不是两者共有的元素。
输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数n(≤20),随后是n个整数,其间以空格分隔。
输出格式:
在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。
输入样例:
10 3 -5 2 8 3 5 -15 9 100
11 6 4 8 2 6 -5 9 100 8
输出样例:
3 5 -15 6 4 1
思路
题目要求找出两个数组中不同的元素,可以先将两个数组合并成一个数组,然后再遍历这个数组,找出不同的元素。
代码
C++ 代码
#include <iostream>
#include <set>
using namespace std;
int main() {
int n1, n2, a[40], b[40];
set<int> s;
cin >> n1;
for (int i = ; i < n1; i++) {
cin >> a[i];
s.insert(a[i]);
}
cin >> n2;
for (int i = ; i < n2; i++) {
cin >> b[i];
s.insert(b[i]);
}
for (set<int>::iterator it = s.begin(); it != s.end(); it++) {
int x = *it;
if (count(a, a + n1, x) == || count(b, b + n2, x) == ) {
cout << x << " ";
}
}
return ;
}
阅读全文