主函数一直报错 不知道咋改
程序代码:
#define MAXSIZE 10 #define OK 1 #define ERROR 0 #define OVERFLOW -1 #include<stdio.h> #include<stdlib.h> #include<malloc.h> typedef int Status; typedef int ElemType; typedef struct{ ElemType *elem; int length; int listsize; }SqList; Status CreatList(SqList&L){ int i; do{ printf("请输入元素个数:"); scanf("%d",&L.length); } while(L.length<=L.listsize||L.length>=1); L.elem=(ElemType*)malloc(MAXSIZE*sizeof(ElemType)); if(!L.elem)return ERROR; for(i<0;i<L.length;i++);{ printf("请输入第%d个元素值=>",i+1); scanf("%d",&L.elem[i+1]); } return OK; } Status InsertList(SqList&L,int i,int m,ElemType *E){ if(i<1||i>L.length||m==0) return ERROR; ElemType *p; int j; if(L.length>=L.listsize){ p=(ElemType*)realloc(L.elem,(L.length+m)*sizeof(ElemType)); if(!p)exit(OVERFLOW); L.elem=p; L.listsize=L.length+m; } for(j-L.length-1;j>=i-1;--j) L.elem[j+m]=L.elem[j]; for(j=0;j<m;j++) L.elem[i+j-1]=E[j]; L.length=L.listsize; return OK; } Status DeleteList(SqList&L,int x,int y){ if(x>y)return ERROR; int i,j; for(i=j=0;i<L.length;i++) if(L.elem[i]>=x&&L.elem[i]<=y) L.length--; else L.elem[j++]=L.elem[i]; L.length-=j; return OK; } void PrintList(SqList L){ int i; printf("顺序表中有%d个元素:\n",L.length); for(i=0;i<L.length;i++) printf("%4d",L.elem[i]); printf("\n"); } void main(){ SqList L; int i,m=3; ElemType x,y; printf("(1)建立有n元素的顺序表\n"); if(!CreatList(L)){printf("创建顺序表失败!\n"); return 0;} printf("创建顺序表如下:\n"); PrintList(L); printf("(2)在顺序表低i个位置上插入,个新元素。。。\n"); printf("请输入插入位置i:"); scanf("%d",&i); if(!InsertList(L,i,m,E)) printf("插入失败!\n"); else{ printf("插入成功!插入后的顺序表如下:\n"); PrintList(L); } printf("(3)在顺序表n中删除其值介于x到y之间的所有元素。。。\n"); printf("请输入被删元素上限值y:"); scanf("%d",&y); if(!DeleteList(L,x,y)) printf("参数错误,删除失败!"); else{ printf("删除后的顺序表如下:\n"); PrintList(L); } } [local]1[/local]
QQ截图20180326171627.png
(5.46 KB)