写题思路:
-
比较共有元素,存入数组中更容易比较;
-
数组a中的第一个元素和数组b中元素一一比较,若相等就不存入新数组,然后第二个元素再和数组b中的元素一一比较循环往复。反过来也一样;
-
验证过后发现输出结果有重复,所以进行去重;
-
提交后发现格式不对,因为最后不能有空格,写个判断完事;
#include<stdio.h>
#include<math.h>
int tmp[999]={0},index=0;
void find(int a,int b[],int len){//找到不是两数组共有的元素
int flag=0;
for(int i=0;i<len;i++){
if(a==b[i]){
flag=1;
}
}
if(flag==0){
tmp[index++]=a;
}
}
int main(){
int num1,num2,a[999],b[999],n;
scanf("%d",&num1);
for(int i=0;i<num1;i++){
scanf("%d",&a[i]);//数字存入数组
}
scanf("%d",&num2);
for(int j=0;j<num2;j++){
scanf("%d",&b[j]);
}
for(int k=0;k<num1;k++){
find(a[k],b,num2);//调用find函数
}
for(int s=0;s<num2;s++){
find(b[s],a,num1);
}
for(int s=0;s<index;s++){//删除重复的一个元素,后面的数往前挪
for(int p=s+1;p<index;p++){
if(tmp[s]==tmp[p]){
for(int d=p;d<index-1;d++){
tmp[d]=tmp[d+1];
}
index--;
}
}
}
for(int f=0;f<index;f++){//格式错误,最后一个输出的数字后面不能有空格
if(f==index-1){
printf("%d",tmp[f]);
}
else printf("%d ",tmp[f]);
}
return 0;
}