请问这个程序哪里有错啊?集合运算
#include<stdio.h>#define MAXSIZE 100
typedef int Elemype
typedef struct
{
Elemtype elem[MAXSIZE];
int length;
}Sqlist;
//创建
void creat(Sqlist *L)
{
int i,m;
printf("\ninput m(集合元素数):");
scanf("%d",&m);
printf("\ninput data:");
for(i=1;i<=m;i++)
scanf("%d",&L.elem[i]);
(*L).length=m;
}
//求交集C
void Sqlist-c(Sqlist A,Sqlist B,Sqlist *C)
{
int i,j,k;
i=1;j=1,k=0;
while(i<=A.length&&j<=B.length)
{
if(A.elem[i]<B.elem[j]) i++;
if(A.elem[i]>B.elem[j]) j++;
if(A.elem[i]=B.elem[j])
{
(*C).elem[++k]=A.elem[i];
i++;
j++;
}
}
(*C).length=k;
}
//求并集
void Sqlist-D(Sqlist A,Sqlist B,Sqlist *d)
{
int i,j,k;
i=1;j=1;k=0;
while(i<=A.length&&j<=B.length)
{
if(A.elem[i]<B.elem[j])
{
(*D).elem[++k]=A.elem[i];
i++;
}
else
{
(*D).elem[++k]=B.elem[j];
j++;
}
while(i<=A.legth)
{
(*D).elem[++k]=A.elem[i++];
}
while(j<=B.length)
{
(*D).elem[++k]=B.elem[j++];
}
(*D).length=k;
}
}
//求差集
void Sqlist-E(Sqlist A,Sqlist B,Sqlist *E)
{
int i,j,k;
i=1;k=0;
while(i<=A.length)
{
j=1;
while(j<=B.length&&A.elem[i]!=B.elem[j++])
{
;
}
if(i>B.length)
(*E).elem[++k]=A.elem[i];
i+;
}
(*E).length=k;
}
//输出
void print(Sqlist L)
{
int i;
for(i=1;i<=L.length;i++)
prinntf("%d ",L.elem[i]);
}
//主函数
void main()
{
Sqlist A,B,C,D,E;
creat(&A);
creat(&B);
Sqlist-C(A,B,&C);
printf("\nA交B=");
print(C);
Sqlist-D(A,B,&c);
printf("\nA并B=");
print(D);
Sqlist-E(A,B,&E);
printf("\nA-B=");
print(E);
getchar();
getchar();
}