7-15 找出不是两个数组共有的元素 (20分)

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

输入格式:
输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。

输出格式:
在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。

输入样例:

10 3 -5 2 8 0 3 5 -15 9 100
11 6 4 8 2 6 -5 9 0 100 8 1

输出样例:

3 5 -15 6 4 1

知识点

  1. 重置:flag=0;
  2. 有重复的输出怎么办:例如, 3 3 5 -15 6 4 6 1
    剔除的方法 遍历arr3,和i前面的相比
printf("%d",c[0]);
for(int i=1;i<k;i++){
	int flag=1;
	for(int j=0;j<i;j++){
	    if(c[j]==c[i])
		flag=0;	
	}
	if(flag==1){		
		printf(" %d",c[i]);	
	}
}

代码

#include<iostream>
using namespace std;

int main(){
	int n1,n2;
	int arr1[20],arr2[20],arr3[40];
	
	cin>>n1;
    for(int i=0;i<n1;i++){
        cin>>arr1[i];
    }
    cin>>n2;
    for(int i=0;i<n2;i++){
        cin>>arr2[i];
    } 
	
	int flag=0,index=0;                            //输入
	for(int i=0;i<n1;i++){
        for(int j=0;j<n2;j++){
			if(arr1[i]==arr2[j]){
				flag=1;
				break;
			}
		}
		if(flag==0){
//			cout<<arr1[i]<<',';
            arr3[index++]=arr1[i]; 
		}
		flag=0; //!!!! 
    }
    for(int i=0;i<n2;i++){
        for(int j=0;j<n1;j++){
			if(arr2[i]==arr1[j]){
				flag=1;
				break;
			}
		}
		if(flag==0){
//			cout<<arr2[i]<<',';
			arr3[index++]=arr2[i]; 
		}
		flag=0; //!!!! 
    }
    
    printf("%d",arr3[0]);
	for(int i=1;i<index;i++){  //遍历arr3 
		int flagg=1;
		for(int j=0;j<i;j++){ //和i前面的相比 
		    if(arr3[j]==arr3[i])
				flagg=0;	
		}
		if(flagg==1){		
			printf(" %d",arr3[i]);	
		}	
	}
} 


(错误代码)直接输出会出现重复的,不可取,例如:
参考知识点2

#include<iostream>
using namespace std;

int main(){
	int n1,n2;
	int arr1[20],arr2[20];
	
	cin>>n1;
    for(int i=0;i<n1;i++){
        cin>>arr1[i];
    }
    cin>>n2;
    for(int i=0;i<n2;i++){
        cin>>arr2[i];
    } 
	
	int flag=0;                            //输入
	for(int i=0;i<n1;i++){
        for(int j=0;j<n2;j++){
			if(arr1[i]==arr2[j]){
				flag=1;
				break;
			}
		}
		if(flag==0){
			cout<<arr1[i]<<',';
		}
		flag=0; //!!!! 
    }
    for(int i=0;i<n2;i++){
        for(int j=0;j<n1;j++){
			if(arr2[i]==arr1[j]){
				flag=1;
				break;
			}
		}
		if(flag==0){
			cout<<arr2[i]<<',';
		}
		flag=0; //!!!! 
    }
} 



版权声明:本文为qq_45159762原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。