D. 实验7-1-8 找出不是两个数组共有的元素
题目描述
给定两个整型数组,本题要求找出不是两者共有的元素。
输入
输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。
输出
在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。
样例查看模式
正常显示
查看格式
输入样例1
10 3 -5 2 8 0 3 5 -15 9 100
11 6 4 8 2 6 -5 9 0 100 8 1
输出样例1
3 5 -15 6 4 1
#include<stdio.h>
int main()
{
int num1[25],num2[25],dif[25],cn=0,f,g,sign_=0,sign=0,count_=0,i,m,j,x,z,n,q,w,b,v,count=0,e,c;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&num1[i]);
}
scanf("%d",&m);
for(j=0;j<m;j++)
{
scanf("%d",&num2[j]);
}
for(z=0;z<n;z++)
{
count=0;
for(x=0;x<m;x++)
{
sign=0;
for(f=z-1;f>=0;f--)
{
if(num1[z]==num1[f])
{
sign=1;
break;
}
}
if(sign==1)
break;
if(num1[z]!=num2[x])
{
count++;
}
}
if(sign==1)
continue;
if(count==m)
{
dif[cn]=num1[z];
cn++;
}
}
for(w=0;w<m;w++)
{
count_=0;
sign_=0;
for(e=0;e<n;e++)
{
for(g=w-1;g>=0;g--)
{
if(num2[g]==num2[w])
{
sign_=1;
break;
}
}
if(sign_==1)
break;
if(num2[w]!=num1[e])
{
count_++;
}
}
if(sign_==1)
continue;
if(count_==n)
{
dif[cn]=num2[w];
cn++;
}
}
for(v=0;v<cn;v++)
{
printf("%d ",dif[v]);
}
return 0;
}
感觉我写的有点复杂了,不过思路还是比较清晰的,我这里是利用了嵌套循环,我首先以第一个数组中的每个数去对比另一个数组的每一个数,如果有不一样的两个数出现的话,我们就将其记录到一个(dif[])数组中;同理,我又以第二个数组中的每一个数去对比另一个数的每一个数,同样如果有不一样的两个数出现的话也将其写入数组中(dif[]),最后我们输出整个数组(dif[])即可~~~~