您的位置首页生活小窍门

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语言---找出不是两个数组共有的元素,给定两个整型数那黑耐境女组,本题要求找出不是来自两者共有的元素

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