调试没有问题,缺总是没有执行。哪位有空帮我看下问题出在哪里
程序代码:
#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个数, 并对该线性表进行插入和删除操作。
程序调试没有问题,但是却没有运行。不知道哪里出错了。。。