【问题描述】两个集合的差集定义如下:
集合A、B的差集,由所有属于A但不属于B的元素构成。
输入两个集合A、B,每个集合中元素都是自然数。求集合A、B的差集。
【输入形式】
从标准输入接收集合中的自然数元素,以空格分隔。-1表示输入结束。
其中,每个集合都不输入重复的元素。
【输出形式】
输出差运算后集合中的元素,以空格分隔。输出元素的顺序与原有集合A输入的顺序一致。
如果A、B的差集为空集,则不输出任何数值。
【样例输入】
2 8 3 4 -1
6 1 4 9 -1
【样例输出】
2 8 3
【样例说明】从标准输入接收集合中的自然数元素,输出集合A、B的差集。
自做答案
#include<stdio.h>
const int maxN = 500;
int A[maxN];
int B[maxN];
int tmp = 0;
int ca = 0,cb = 0;
int main()
{
int tmp;
int flag;
scanf("%d",&tmp);
while(tmp != -1)
{
A[ca++] = tmp;
scanf("%d",&tmp);
}
scanf("%d",&tmp);
while(tmp != -1)
{
B[cb++] = tmp;
scanf("%d",&tmp);
}
//printf("%d %d\n",ca,cb);
for(int i = 0;i<ca;i++)
{
flag = 1;
for(int j = 0;j<cb;j++)
{
if(A[i] == B[j])
{
flag = 0;
break;
}
}
if(flag == 1)
printf("%d ",A[i]);
}
return 0;
}