當前位置:成語大全網 - 新華字典 - C語言---找出不是兩個數組***有的元素,給定兩個整型數組,本題要求找出不是兩者***有的元素

C語言---找出不是兩個數組***有的元素,給定兩個整型數組,本題要求找出不是兩者***有的元素

#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;

cin>>?num;

for(int?i?=0;?i<?num;?i++){

cin>>a[i];

mapa[a[i]]?=?true;

}

for(int?i?=0;?i<?num;?i++){

cin>>b[i];

mapb[b[i]]?=?true;

}

int?idx?=?0;

for(int?i?=?0;?i<?num;?i++){//去除a中的重復元素

if(mapa.find(a[i])?==?mapa.end()){

a[idx]?=?a[i];

idx++;

}

}

idx?=?0;

for(int?i?=?0;i?<num;?i++){//去除b中的重復元素

if(mapb.find(b[i])?==?mapb.end()){

b[idx]?=?b[i];

idx++;

}

}

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;

}