数据结构c语言班这个代码那里错了
#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR 0#define OVERFLOW -2#define MAXSIZE 100typedef int Status;typedef int ElemType;typedef struct { ElemType *elem; int length; }SqList;//初始化Status InitList(SqList &L){ //构造一个空的顺序表L // L.elem=new ElemType[MAXSIZE]; //为顺序表分配空间,C++格式 L.elem=(ElemType *)malloc(sizeof(ElemType)); //为顺序表分配空间,C格式 if(!L.elem) exit(OVERFLOW); //存储分配失败 L.length=0; //空表长度为0 return OK;}//插入Status ListDelete(SqList &L,int i ){ int j; if(i<1 || i>L.length) return ERROR; //i值不合法 for(j=i;j<=L.length-1;j++) L.elem[j-1]=L.elem[j]; --L.length; //表长减1 return OK;}//输出void DispList(SqList &L){ int i; for(i=0;i<L.length;i++) printf("%5d",L.elem[i]); printf(" ");}//主函数int main(){ SqList L; int i,k; ElemType e; if(InitList(L)==1) printf("成功建立顺序表 "); else printf("建立顺序表失败 "); printf("请输入元素个数:"); scanf("%d",&L.length); for(i=0;i<L.length;i++) { printf("请输入第[%d]个元素:",i+1); scanf("%d",&L.elem[i]); } printf("请输入待删位置:"); scanf("%d",&k); printf("请输入待删元素:"); scanf("%d",&e); if(ListDelete(L,k)==1) printf("删除成功 "); // for(i=0;i<L.length;i++) // printf("%5d",L.elem[i]); DispList(L); printf(" "); return 0;}
1.你的程序根本不是c语言,而是C++的
****C与C++是不同的语言
2.你的排版有问题
*******上传程序注意排版
3、作为C++,程序可以运行,结果也是正确的
只是多输入了待删元素(没用到且也用不到)
另外,输出也多一个份(多一个循环了)
删除这两部分就可以了