帮忙找错,简单的顺序表,两表交集.
#include<stdio.h>#include"sequlist.H"
#define M 5
#define N 3
/////////////////////////////////////////////
//
//////////////////////////////////////////////
void init(sequence_list *slt){
slt->size=0;
}
/////////////////////////////////////////////
//
/////////////////////////////////////////////
void append(sequence_list *slt,datatype x){
if(slt->size==MAXSIZE)
{printf("表是满的!");return ;}
slt->a[slt->size]=x;
slt->size=slt->size+1;
}
////////////////////////////////////////////
//
////////////////////////////////////////////
void display(sequence_list slt){
int i;
if(!slt.size)printf("\n表是空的。");
else
for(i=0;i<slt.size;i++)printf("%5d",slt.a[i]);
}
//////////////////////////////////////////////
//
///////////////////////////////////////////////
int empty(sequence_list slt){
return(slt.size==0?1:0);
}
////////////////////////////////////////////////
//
/////////////////////////////////////////////////
int find(sequence_list slt,datatype x){
int i=0;
while(i<slt.size&&slt.a[i]!=x)i++;
return(i<slt.size?i:-1);
}
///////////////////////////////////////////////////
//
///////////////////////////////////////////////////
datatype get(sequence_list slt,int i){
if(i<0||i>=slt.size)
{printf("\n指定位置的结点不存在!");return 0;}
else
return slt.a[i];
///////////////////////////////////////////////////
//
////////////////////////////////////////////////////
void jiaoa(sequence_list slt1,sequence_list slt2,sequence_list *slt3){
int i;
if(empty(slt1)||empty(slt2))
printf("有空表,所以交集是空集。\n");
else{
for(i=0;i<M;i++)
if(find(slt2,get(slt1,i))==-1)
append(slt3,get(slt1,i));
display(*slt3);
}
}
////////////////////////////////////////////////////
//
////////////////////////////////////////////////////
void main(){
sequence_list aa,bb,cc;
int i,x;
init(&aa);
init(&bb);
init(&cc);
printf("输入表aa\n");
for(i=0;i<M;i++)
{scanf("%d",&x);append(&aa,x);}
printf("输入表bb\n");
for(i=0;i<N;i++)
{scanf("%d",&x);append(&bb,x);}
jiaoa(aa,bb,&cc);
}