问题补充说明:输入分别在2行中给出2个整型数组,每行先给出正整数N(<=20),随后是N个整数,其间以空格分隔。【输出】在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。【样例输入】10 3 -5 2 8 0 3 5 -15 9 10011 6 4 8 2 6 -5 9 0 100 8 1【样例输出】3 5 -15 6 4 1
1口波富亮情经23456789101苗垂谁由查历厂马力车11213141516171819202122232425262728293031323334353该罗却备63738394案九这策例云04142434445464748495051525354555657585960616263646566676869707172#include<iostream>#include<map>using namespace std; int main(){ map<int, bool> map1, res_map, mapa, mapb;//res_map保存两个数组的不同元素 map<int, bool>::iterator it; int a[20], b[20厂亚展染兰应须缺若]; int num = 0; c360问答in>> num; f龙缩松理否输or(int i =0; i< num; i++){ cin>>a看假地排[i]; mapa[a[i]] = true; } for(int i =0; i< num; i++){ c达序害in>>b[i]; m则析对销概谓以孩apb[b[i]] = true; } int idx = 0; for(i巴状分新nt i = 0; i< num; i++){//去除a中的重复元素 if(mapa.find(a[i]) == mapa.end()){ a[idx] = a[i]; i川径语概九报分dx++; } } idx = 0; for(int i = 0;i <num; i++){//去除b中的重复元素 if(mapb.find(b[i]) == mapb.end()){ b[idx] = b[i]; id夫答始绝汉止述对国x++; } } for(int i = 0; i< num;i++){ map1[a[i]] = true; } for(int i = 0缩兵夜源尔套危显家第缩; i < num; i++){//寻找两个数组的公共元素,并保存在res_map中 it = map1.find(b[i]); if(it != map1.end()){ res_map[b[i]] = true; } } int e = 0; bool is_first = true; //按a中原始顺序,输出满足条件的元素 for(int e = 0; e < mapa.size(); e++){ if(res_map.find(a[e]) == res_map.end(加谓)){ if(!is_first){ cout<<' '; } cout<<a[e]; if(is_first) is_first = false; } } cout<<endl; is_first = true; /当易手说粉/按b中原始顺序,输出满足条件的b中的元素 for(int e = 0; e<mapb.size(); e++){ if(res_map.find(b[e]) == res_map.end()){ if(!is_first){ cout<<' '断百灯; } cout<<b[e]; if(is_first) is_first = false; } } cout<<endl; int stop; cin>>stop; return 0;}