问题遇到的现象和发生背景
程序不输出啊
问题相关代码,请勿粘贴截图
#include <stdio.h>
typedef int ElemType;
//定义顺序表
struct List{
ElemType *list;
int Size;
int MaxSize;
};
void Delete(int i,struct List *L); //定义线性表的删除
void Insert(ElemType X,int i,struct List *L); //定义线性表的插入
void print(struct List L); //定义线性表中数据的显示
int Find(ElemType X,struct List L);//定义线性表数据的定位和查找
//初始化顺序表
void ListInitiate(struct List *L){
L->Size = 0; //定义初始化元素个数
}
//删除元素
void Delete(int i,struct List *L){
int j;
if(L->Size <= 0){
printf("删除失败!\n");
}else if(i < 0 || i > L->Size-1){
printf("参数i错误!\n");
}else {
for(j = i+1;j <= L->Size-1;j++)
L->list[j-1] = L->list[j];
L->Size--;
}
}
//插入元素
void Insert(ElemType X,int i,struct List *L){
int j;
if(L->Size >= sizeof(L->list)){
printf("顺序表已满!\n");
}else if(i < 0 || i > L->Size){
printf("参数i不合法!\n");
}else {
for(j = L->Size;j > i;j--)
L->list[j] = L->list[j-1];
L->list[i] = X;
L->Size++;
}
}
//显示数据
void print(struct List L){
int i = 0;
printf("此时的顺序表为:");
for(i = 0;i < L.Size;i++)
printf("%d",L.list[i]);
printf("\n");
}
//查找数据
int Find(ElemType X,struct List L){
int temp;
while(temp <= sizeof(L.list) || L.list[temp] != X)
temp++;
if(sizeof(L.list) < temp){
printf("未找到该数据!");
return -1;
}else
return temp;
}
void main(){
int i;
struct List L; //定义顺序表
ListInitiate(&L); //初始化顺序表
for(i = 0;i < 10;i++){
Insert(i+1,i,&L); //插入函数
}
printf("查找值为8的下标是:%d\n",Find(8,L)); //查找函数
print(L); //显示函数
Delete(5,&L); //删除函数
print(L); //显示函数
}
运行结果及报错内容
中间就断了
我的解答思路和尝试过的方法
我想要达到的结果
输出7
01 2 3 4 5 6 7 8 9
01 2 3 4 6 7 8