在完成顺序表逆置问题的代码时,为什么在输入数据以后会返回0退出运行呢?
#include<stdio.h>
#include<stdlib.h>
#define ERROR 0
#define OK 1
typedef int Status; //用Status表示int类型
typedef int ElemType; //定义ElemType为int类型
typedef struct seqList
{
int n;
int maxLength;
ElemType *element;
}SeqList;
Status Init(SeqList *L, int mSize)
{
L->maxLength= mSize;
L->n=0;
L->element=(ElemType *)malloc(sizeof(ElemType)*mSize);
if (!L->element)
return ERROR;
return OK;
}
Status CreateList(SeqList *L)
{
int len;
int i;
printf("请输入想要创建表的长度:");
scanf("%d",&len);
if(len<0||len>L->maxLength)
return ERROR;
L->maxLength = len;
printf("请输入%d个数据:",len);
for(i=0;i<len;i++)
{
scanf("%d",&L->element[i]);
}
return OK;
}
Status Output(SeqList *L)
{
int i;
for(i=0;i<=L->maxLength;i++)
printf("%d",L->element[i]);
}
Status ReverseList(SeqList *L)
{
int i;
ElemType temp;
if(!L->element)
return ERROR;
for(i=0;i<L->maxLength/2;i++)
{
temp = L->element[i];
L->element[i] = L->element[L->maxLength-i-1];
L->element[L->maxLength-i-1] = temp;
}
return OK;
}
void main()
{
SeqList list;
Init(&list,10);
CreateList(&list);
printf("初始线性表为:");
Output(&list);
ReverseList(&list);
printf("逆置后的线性表为:");
Output(&list);
}
只能运行到如下步骤,再敲击回车键就会闪退
并返回0