赞
踩
- int n,m,once=1;
- scanf("%d", &n);
-
- ifor(i, 0, n-1) {
- scanf("%d", &a[i]);
- }
- scanf("%d", &m);
- ifor(i, 0, m-1) {
- scanf("%d", &b[i]);
- }
- int d[2000];
- memcpy(d, a, n*4);
- memcpy(d + n, b, m*4 );
- //第三个参数为字节数,如复制两个int数据到d中,则这里应该写2*sizeof(int)
- ifor(i, 0, n -1+m) {
- if(vis[d[i]+100]) continue;
- //上一段提到的去重,如果出现过,就continue,注意d【i】可能为负数
- vis[d[i]+100] =1;
- int f1=0,f2=0;
-
- //去两个数组中间找
- ifor(j,0,n-1) {
- if(d[i]==a[j]) {
- f1=1;
- break;
- }
- }
- ifor(j,0,m-1) {
- if(d[i]==b[j]) {
- f2=1;
- break;
- }
- }
- //如果f1 f2 都为1,表示两个中都有,就不输出这个元素,不符合题意
- if(f1&&f2) continue;
- if(once) {
- printf("%d",d[i]);
- once=0;
- } else printf(" %d",d[i]);
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。