当前位置:大问百书>百科知识>C语言---找出不是两个数组共有的元素,给定两个整型数组,本题要求找出不是两者共有的元素

C语言---找出不是两个数组共有的元素,给定两个整型数组,本题要求找出不是两者共有的元素

2024-11-27 06:04:14 编辑:zane 浏览量:602

C语言---找出不是两个数组共有的元素,给定两个整型数组,本题要求找出不是两者共有的元素

的有关信息介绍如下:

问题补充说明:输入分别在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

C语言---找出不是两个数组共有的元素,给定两个整型数组,本题要求找出不是两者共有的元素

12345678910111213来自1415161718360问答192021222324252627282930313233343536373839404142434445464748495051满父建做5253545556575859606162636465666能76869707172#include<iostream>#include<map>using namespace std; int main(){    m耐倒斯天干方民英比体这ap<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++){        c假测层括社料台操仍生in>>a[i];        mapa[a[i]] = true;    }    f皇国or(int i =0; i< num; i++){        cin>>b[i];        mapb[b[i]川钟款只余露再] = true;    }    int idx = 0;    for(in六企卫研更t i = 0; i< num; i++){//去除a中的重复元素        if(m身安更倍良已被序离陆代apa.find(a[千源木稳春朝专器i]) == mapa.end()){            a[idx] = a[i];            idx++;        }    }    id言杂单立尽x = 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]] = tru信导几什e;    }    for(int i = 0; i < num; i++){//寻找两个数组的公共元素,并保浓技出坐存在res_map装素到胜武只引织中        i验告七信烧布到阳入t = 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;}

版权声明:文章由 大问百书 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.dawenbaishu.com/article/205883.html
热门文章