#include <stdio.h>
#include <stdlib.h>
#define Max 100
typedef int ElemType;
typedef struct{
ElemType data[Max];
int length;
}SqList;
void display(SqList *L){
int i;
for(i=0;i<L->length;i++)
printf("%d ",L->data[i]);
printf("\n");
}
void differentialSet(SqList *A, SqList *B,SqList *C){
int i,j,k=0;
for (i=0;i<A->length;i++)
{
j=0;
while(j< B->length && B->data[j] != A->data[i])
j++;
if(j==B->length)
C->data[k++]=A->data[i];
}
C->length=k;
}
int main()
{
int m,j;
int n,i;
printf("(输入的第一个集合的元素数量大于第二个元素数量)\n");
printf("输入第一个集合的个数:");
scanf("%d",&n);
printf("输入第二个集合的个数:");
scanf("%d",&m);
if(n<m)
{
printf("输入错误!");
return ;
}
SqList *A = (SqList*)malloc(sizeof(SqList));
A->length=0;
printf("第一集合的元素为:");
for(i=0;i<n;i++)
{
scanf("%d",&A->data[i]);
}
A->length=n;
SqList *B = (SqList*)malloc(sizeof(SqList));
B->length=0;
printf("第二集合的元素为:");
for(j=0;j<m;j++)
{
scanf("%d",&B->data[j]);
}
B->length=m;
SqList *C = (SqList*)malloc(sizeof(SqList));
C->length=0;
printf("集合A为:");
display(A);
printf("集合B为:");
display(B);
differentialSet(A,B,C);
printf("两集合的差集为:");
display(C);
return 0;
}