编写程序,先输入两个数m,n(m<=20,n<=20)表示两个数组的大小,读入两个整数数组,生成一个新数组,该 数组中的元素是两个数组元素的差集。
输入格式:
输入m读入一个大小为m的数组,输入n读入一个大小为n的数组
输出格式:
输出两个数组元素的差集,末尾为多余空格
输入样例:
在这里给出一组输入。例如:
5
1 2 3 4 5
4
6 7 8 9
输出样例:
在这里给出相应的输出。例如:
1 2 3 4 5 6 7 8 9
这个方法比较野蛮
还好发现了一个小问题——
在取差集后如果数组为空会有问题
现在改进了一下下
#include<stdio.h>
int main()
{
int a[20],b[20],c[40];
int i,j,n1,n2,flag=0,count=0;
scanf("%d",&n1);
for(i=0;i<n1;i++)
scanf("%d",a+i);
scanf("%d",&n2);
for(i=0;i<n2;i++)
scanf("%d",b+i);
for(i=0;i<n1;i++)
{
for(j=0;j<n2;j++)
{
if(*(a+i)==*(b+j))
{
flag=1;
break;
}
}
if(flag==0)
{
c[count]=a[i];
count++;
}
flag=0;
}
for(i=0;i<n2;i++)
{
for(j=0;j<n1;j++)
{
if(*(a+j)==*(b+i))
{
flag=1;
break;
}
}
if(flag==0)
{
c[count]=b[i];
count++;
}
flag=0;
}
if(count==0)
printf("");
else
{
for(i=0;i<count-1;i++)
printf("%d ",*(c+i));
printf("%d",*(c+i));
}
return 0;
}