调试没有问题,缺总是没有执行。哪位有空帮我看下问题出在哪里
程序代码:#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define MaxSize 10
typedef int ElemType; //将int 定义为Elemtype
typedef struct
{
int *elem;
int length; //线性表中元素的个数
int listsize;//线性表大小
} Sqlist; //Sqlist is the varible name
//初始化动态顺序表
void initSqlist( Sqlist *L )
{
L->elem = (int *)malloc( MaxSize*sizeof(ElemType) );
//malloc函数,动态分配长度为sizeof(指定类型大小),数量MaxSize个的连续空间,返回值为该空间的首地址给指针
//“->”表示指针指向结构体中的成员,这里即elem
if(!L->elem) exit(0);
L->length = 0; //初始时,0个元素 线性表的长度
L->listsize = MaxSize;//线性表的容量
}// 于是得到了一张线性表L
//在动态生成的顺序表L中插入元素
void InsertElem( Sqlist *L, int i, ElemType item )
{
//在第 i 个位置,插入元素 item
ElemType *base, *insertPtr, *p;
if(i<1||i>L->length+1) exit(0);
if(L->length>=L->listsize)
{
base=(ElemType *)realloc(L->elem,(L->listsize+10)*sizeof(ElemType));
//realloc 将L-elem所指向的空间大小给变为后面给定的值,即重新分配空间大小
//重新追加空间;
L->elem=base;
L->listsize = L->listsize + 100;
}
insertPtr=&(L->elem[i-1]);
for(p=&(L->elem[L->length-1]);p>=insertPtr;p--)
{
*(p+1)=*p;
*insertPtr = item;
L->length++;
}
}
//从顺序表中删除元素
void DelElem(Sqlist *L, int i)
{
ElemType *delItem, *q;
if(i<1||i>L->length) exit(0);
delItem=&(L->elem[i-1]);
q=L->elem+L->length-1;
for(++delItem;delItem<=q;++delItem)
*(delItem-1)=*delItem;
L->length--;
}
void main()
{
Sqlist l;
int i;
initSqlist(&l);
for(i=0;i<15;i++)
{
InsertElem( &l,i+1,i+1 );
}
printf("\n the content of the list is: \n");
for(i=0;i<l.length;i++)
{
printf("%d ",l.elem[i]);
}
DelElem(&l,5);
printf("\n Delete the fifth number \n");
for(i=0;i<l.length;i++)
{
printf("%d ",l.elem[i]);
}
getchar();
}程序内容大致为: 生成一个大小为10的顺序表,要求存储15个数, 并对该线性表进行插入和删除操作。
程序调试没有问题,但是却没有运行。不知道哪里出错了。。。










