主题:程序
/*线性表子程序*/
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
typedef struct
{
int data[MAX];
int last;
}Seqlist;
Seqlist *Init_Seqlist()
{
Seqlist *L;
L=new Seqlist;
L->last=-1;
return L;
}
int scan_Seqlist(L)
{
int i;
for(i=0;i<=L->last;i++)
scanf("%d",L->data[i]);
return 1;
}
int print_Seqlist(L)
{
int i;
printf("%d",L->data[i]);
return 1;
}
int Insert_Seqlist(Seqlist *L,int i,int x)
{
int j;
if(L->last==MAX-1)
{printf("表满,不能插入!");
return -1;}
if(i<1||i>L->last+2)
{printf("插入位置错!");
return 0;}
for(j=L->last;j>=i-1;j--)
L->data[j+1]=L->data[j];
L->data[i-1]=x;
L->last++;
return 1;
}
int Del_Seqlist(Seqlist *L,int i)
{
int j;
if(i<1||i>L->last+1)
{printf("位置错!");
return 0;}
for(j=i;j<=L->last;j++)
L->data[j-1]=L->data[j];
L->last--;
return 1;
}
int Location_Seqlist(Seqlist *L,int x)
{
int i=0;
while(i<=L->last&&L->data[i]!=x)
i++;
if(i<=L->last)
return i;
else
return -1;
}
void main()
{
Seqlist *L;
int i,x,flag,k;
int Init_seqlist(L);
int scan_seqlist(L);
int print_seqlist(L);
do{
printf("顺序表子系统\n");
printf("1--构建顺序表\n");
printf("2--输 入\n");
printf("3--输 出\n");
printf("4--查 找\n");
printf("5--插 入\n");
printf("6--删 除\n");
printf("7--销 毁\n");
printf("0--返 回\n");
printf("请选择菜单(0-7):");
scanf("%d",&k);
switch(k)
{
case 1:
printf("构建一个顺序表\n");
flag=Init_seqlist(&L);
break;
case 2:
printf("请输入顺序表中的元素:\n");
flag=scan_seqlist(L);
break;
case 3:
printf("输出顺序表中的元素:\n");
flag=print_seqlist(L);
break;
case 4:
printf("\n请输入要查找的值:");
scanf("%d",&x);
flag=Location_Seqlist(L,x);
if(flag!=-1)
printf("\n值为%d在顺序表中的位置为%d!按任意键返回...",x,flag);
else
printf("\n顺序表中无此元素!按任意键返回...");
break;
case 5:
printf("\n请输入插入的位置i和元素x(i,x):");
scanf("%d,%d",&i,&x);
flag=Insert_Seqlist(L,i,x);
if(flag==1)
printf("\n插入成功!按任意键返回...");
else
printf("\n按任意键返回...");
break;
case 6:
printf("\n请输入删除位置i:");
scanf("%d",&i);
flag=Del_Seqlist(L,i);
if(flag==1)
printf("\n删除成功!按任意键返回...");
break;
case 0:
printf("\n按任意键返回.");
break;
}
}while(k!=0);
}
哪位高手帮我看一下,我实在找不出哪里有错
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
typedef struct
{
int data[MAX];
int last;
}Seqlist;
Seqlist *Init_Seqlist()
{
Seqlist *L;
L=new Seqlist;
L->last=-1;
return L;
}
int scan_Seqlist(L)
{
int i;
for(i=0;i<=L->last;i++)
scanf("%d",L->data[i]);
return 1;
}
int print_Seqlist(L)
{
int i;
printf("%d",L->data[i]);
return 1;
}
int Insert_Seqlist(Seqlist *L,int i,int x)
{
int j;
if(L->last==MAX-1)
{printf("表满,不能插入!");
return -1;}
if(i<1||i>L->last+2)
{printf("插入位置错!");
return 0;}
for(j=L->last;j>=i-1;j--)
L->data[j+1]=L->data[j];
L->data[i-1]=x;
L->last++;
return 1;
}
int Del_Seqlist(Seqlist *L,int i)
{
int j;
if(i<1||i>L->last+1)
{printf("位置错!");
return 0;}
for(j=i;j<=L->last;j++)
L->data[j-1]=L->data[j];
L->last--;
return 1;
}
int Location_Seqlist(Seqlist *L,int x)
{
int i=0;
while(i<=L->last&&L->data[i]!=x)
i++;
if(i<=L->last)
return i;
else
return -1;
}
void main()
{
Seqlist *L;
int i,x,flag,k;
int Init_seqlist(L);
int scan_seqlist(L);
int print_seqlist(L);
do{
printf("顺序表子系统\n");
printf("1--构建顺序表\n");
printf("2--输 入\n");
printf("3--输 出\n");
printf("4--查 找\n");
printf("5--插 入\n");
printf("6--删 除\n");
printf("7--销 毁\n");
printf("0--返 回\n");
printf("请选择菜单(0-7):");
scanf("%d",&k);
switch(k)
{
case 1:
printf("构建一个顺序表\n");
flag=Init_seqlist(&L);
break;
case 2:
printf("请输入顺序表中的元素:\n");
flag=scan_seqlist(L);
break;
case 3:
printf("输出顺序表中的元素:\n");
flag=print_seqlist(L);
break;
case 4:
printf("\n请输入要查找的值:");
scanf("%d",&x);
flag=Location_Seqlist(L,x);
if(flag!=-1)
printf("\n值为%d在顺序表中的位置为%d!按任意键返回...",x,flag);
else
printf("\n顺序表中无此元素!按任意键返回...");
break;
case 5:
printf("\n请输入插入的位置i和元素x(i,x):");
scanf("%d,%d",&i,&x);
flag=Insert_Seqlist(L,i,x);
if(flag==1)
printf("\n插入成功!按任意键返回...");
else
printf("\n按任意键返回...");
break;
case 6:
printf("\n请输入删除位置i:");
scanf("%d",&i);
flag=Del_Seqlist(L,i);
if(flag==1)
printf("\n删除成功!按任意键返回...");
break;
case 0:
printf("\n按任意键返回.");
break;
}
}while(k!=0);
}
哪位高手帮我看一下,我实在找不出哪里有错