问题遇到的现象和发生背景
要实现删除顺序表的一个元素之后输出删除后的顺序表元素
输出之后不知道为什么会出现两个15
问题相关代码,请勿粘贴截图 #include<stdio.h>
#include<stdlib.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define OVERFLOW 0
#define OK 1
#define ERROR -1
typedef struct{
int elem;
int length;
int listsize;
}SqList;//定义一个顺序表
int InitList_Sq(SqList &L){
L.elem=(int)malloc(LIST_INIT_SIZE*sizeof(int));
if(!L.elem)
exit(OVERFLOW);
L.length=0;
L.listsize=LIST_INIT_SIZE;
return OK;
}//顺序表的初始化
int ListDelete_Sq(SqList &L,int i,int &e){
if((i<1)||(i>L.length))
return ERROR;
e=L.elem[i-1];
int j;
for(j=i;j<L.length-1;j++)
L.elem[j-1]=L.elem[j];
--L.length;
return OK;
} //顺序表的删除
int CreateList_Sq(SqList &L){
int i;
for(i=0;i<7;i++){
scanf("%d",&L.elem[i]);
L.length=L.length+1;
}
return OK;
}//输入顺序表
int PrintList_Sq(SqList &L){
int i;
for(i=0;i<7;i++){
printf("%d ",L.elem[i]);
}
return OK;
}//打印顺序表
int main(){
SqList LB;
int i,e;
InitList_Sq(LB);
printf("线性表LB元素如下:\n");
CreateList_Sq(LB);
printf("请输入删除的元素位置i=");
scanf("%d",&i);
printf("被删除的元素e=");
scanf("%d",&e);
printf("新线性表LB元素如下:\n");
ListDelete_Sq(LB,i,e);
PrintList_Sq(LB);
return 0;
}