程序无法执行,求大神指教
眉眼盈盈处 2014-03-20 02:50:13 #include <stdio.h>
#include <iostream.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE];
int length;
}Sqlist;
void InitList(Sqlist &L) //初始化设置
{
L.length=0;
}
void CreatSqlist(Sqlist &L,int n) //建立顺序储存链表
{
int i;
for(i=0;i<n;i++)
scanf("%d",&L.data[i]);
L.length=n;
fflush(stdin);
}
void Output(Sqlist &L) //输出顺序表L
{
int i;
for(i=0;i<L.length;i++)
printf("%5d",L.data[i]); //每个数据占5列
printf("\n");
}
int Empty(Sqlist L) //判断空链表
{
if(L.length==0) return 1;
else return 0;
}
int Insert (Sqlist &L,ElemType x,int i)
{
int k;
if(i<0||i>L.length||L.lenght==MAXSIZE)
return 0;
else
{
for (k=L.length ;k>=i;k--)
L.data[k]=L.data[k-1];
L.data[i]=x;
L.length=L.length+1;
}
return 1;
}
int Delete(Sqlist &L,int i)
{
int k;
if(i<0||i>=L.length)
return 0;
else
{
for(k=i;k<L.length;k++)
L.data[k]=L.data[k+1];
L.length--;
}
return 1;
}
void Merge(Sqlist a,Sqliat b,Sqlist &c)
{
int i=0,j=0,k=0;
while(i<a.length)
{
c.data[k]=a.data[i];
i++;k++;
}
while(j<b.length)
{
c.data [k]=b.data[j];
j++;k++
}
}
void Output()
{
int i;
for (i=0;i<10;i++)
printf(" ");
for (i=0;i<32;i++)
printf("*");
printf("\n");
}
void mainpp()
{
int i;
output();
for (i=0;i<10;i++) printf(" "); printf ("* ");
printf("1.建立一个顺序表");
for (i=0;i<10;i++) printf(" "); printf ("* "); printf("\n");
for (i=0;i<10;i++) printf(" "); printf ("* ");
printf("2.输出一个顺序表");
for (i=0;i<10;i++) printf(" "); printf ("* "); printf("\n");
for (i=0;i<10;i++) printf(" "); printf ("* ");
printf("3.插入一个元素");
for (i=0;i<2;i++) printf(" "); printf ("* "); printf("\n");
for (i=0;i<10;i++) printf(" "); printf ("* ");
printf("4.删除一个元素");
for (i=0;i<2;i++) printf(" "); printf ("* "); printf("\n");
for (i=0;i<10;i++) printf(" "); printf ("* ");
printf("5.将两个顺序表合并");
for (i=0;i<8;i++) printf(" "); printf ("* "); printf("\n");
for (i=0;i<10;i++) printf(" "); printf ("* ");
printf("0.退出");
for (i=0;i<8;i++) printf(" "); printf ("* "); printf("\n");
output();
}
void main()
{
int n,i,k=1,m,x;
Sqlist l,a,c;
InitList(l);
mainpp();
while(k)
{
printf("请选择0--5");
scanf("%d",&m);
getchar();
switch(m)
{
case 0: return;
case 1:{ printf("输入元素值,构建顺序表:\n");
printf("请输入顺序表元素个数: ");
scanf("%d",&n);
CreatSqlist(l,n);
Output(l);
break;
}
case 2:Output(l);printf("\n");break;
case 3:{ printf("输入要插入的元素的位置以及其值: ");
fflush(stdin);
scanf("%d",&i);
scanf("%d",&x);
Insert(l,x,i);
Output(l); //输出插入元素之后的链表
printf("\n");
break;
}
case 4:{ printf("输入要删除元素的位置: ");
fflush(stdin); //清除一个流
scanf("%d",&i);
Delete(l,i);
Output(l);
break;
}
case 5:{ InitList(la);
printf("输入第二个顺序表的元素个数: ");
scanf("%d",&m);
CreatSqlise(la,m);
Output(la);
Merge(l,la,lc);
printf("输出合并后顺序表中的元素:\n");
Output(lc);
break;
}
default:return;
}
printf("继续? yes(1)/no(0): ");
scanf("%d",&k);
if(!k) return;
}
}