出现了什么问题啊?
#define LIST_INIT_SIZE 20
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#include<malloc.h>
#include<conio.h>
//#include"const.h"
#include <stdio.h>
struct std{
char name[20];
int num;
int score;
char dress[20];
};
typedef struct std ElemType;
typedef int Status;
typedef struct {
ElemType *elem;
int length;
int listsize;
}SqList; //线性表定义
Status InitList_Sq(SqList &L){
L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem)return ERROR;
L.length=0;
L.listsize=LIST_INIT_SIZE;
return OK;
};//新建线性表
Status ListInsert_Sq(SqList &L,int i,ElemType e){
ElemType *q,*p;
if(i<1||i>L.length+1)return ERROR;
q=&(L.elem[i-1]);
for(p=&(L.elem[L.length-1]);p>=q;--p) *(p+1)=*p;
*q=e;
++L.length;
return OK;
};//在顺序表L的第i个元素前插入新的元素e
Status GetElem(SqList L,int i,ElemType &e){
if(i<1||i>L.length)
return ERROR;
e=L.elem[i-1];
return OK;
};//得到顺序表的元素
Status ListDelete_sq(SqList &L,int i,ElemType &e){
ElemType *p,*q;
if((i<1)||i>L.length )return ERROR ;
p=&(L.elem[i-1]);
e=*p;
q=L.elem +L.length -1;
for(++p;p<=q;++p)
*(p-1)=*p;
--L.length ;
return OK;
};//删除顺序表的第i个元素用e返回
int ListEmpty_sq(SqList L){
if(L.length!=0)
return(1);
else
return(L.length);};//判断是否为空表,是返回0,不是返回1
int ListLength(SqList L)
{
return(L.length);
};//得到线性表的长度
Status DestroyList(SqList &L)
{
free(L.elem);
return OK;
};//释放线性表
void main()
{
int i,a,b,n;
ElemType e;
SqList L;
printf("(1)初始化线性表L\n ");
InitList_Sq(L);
printf("将信息存入线性表!\n");
printf("请输入要输入的元素个数!\n");
scanf("%d",&n);
printf("采用尾插法依次插入元素!\n");
for(i=1;i<=n;i++){
printf("请输入要插元素的信息!依次为学生姓名,学号,分数,住址");
scanf("%s%d%d%s",&e.name,&e.num,&e.score ,&e.dress);
ListInsert_Sq(L,i,e);
}
printf("请输入要查找的学生的位序!\n");
scanf("%d",&i);
GetElem(L,i,e);
printf("第%d个学生的基本信息为:\n",i);
printf("%4s%5d%5d%5s\n",e.name,e.num,e.score ,e.dress);
printf("请输入要删除的学生的位序!\n");
scanf("%d",&i);
ListDelete_sq(L,i,e);
printf("被删除学生的基本信息如下!\n");
printf("%4s%5d%5d%5s\n",e.name,e.num,e.score ,e.dress);
printf("看看线性表是不是空表!1表示非空,0表示为空表\n");
a=ListEmpty_sq(L);
printf("%d\n",a);
printf("输出当前线性表的长度!\n");
b=ListLength(L);
printf("%d\n",b);
DestroyList(L);
getch();
}
(1)初始化线性表L
将信息存入线性表!
请输入要输入的元素个数!
2
采用尾插法依次插入元素!
请输入要插元素的信息!依次为学生姓名,学号,分数,住址xingming 123 87 fenshu
请输入要插元素的信息!依次为学生姓名,学号,分数,住址sh 124 98 skdjs
请输入要查找的学生的位序!
2
第2个学生的基本信息为:
sh 124 98skdjs
请输入要删除的学生的位序!
2
被删除学生的基本信息如下!
sh 124 98skdjs
看看线性表是不是空表!1表示非空,0表示为空表
1
输出当前线性表的长度!
1
Press any key to continue...