用C语言编写顺序存储结构的插入程序。急救!~~

我们刚学数据结构与算法这门课,下面给出的是老师上课列写的代码,具有顺序表插入功能。
我在VS上运行不了。。好像是少主程序。。请问主程序怎么编?谁能给我编一个可以运行的完整的插入代码?万分感谢!
#include<stdio.h>

#define MaxSize 100
typedef int ElemType;
typedef struct {
ElemType elem[MaxSize];
int last;
} SeqList;

void InsertList(SeqList *L, ElemType e, int i) {

int p = i;
if ((i<1) || (i>L->last + 1))
printf("插入位置不合法");
if (L->last == MaxSize - 1)
printf("溢出错误");
for (p = L->last; p >= i; p--){
L->elem[p + 1] = L->elem[p];
}
L->elem[i] = e;
printf("插入成功");
}
最新回答
自在安然

2024-11-23 04:38:28

#include<stdio.h>

#define MaxSize 100
typedef int ElemType;
typedef struct {
ElemType elem[MaxSize];
int last;
} SeqList;

void InsertList(SeqList *L, ElemType e, int i) {
int p = i;
if ((i<1) || (i>L->last + 1))
printf("插入位置不合法");
if (L->last == MaxSize - 1)
printf("溢出错误");
for (p = L->last; p >= i; p--){
L->elem[p + 1] = L->elem[p];
}
L->elem[i] = e;
printf("插入成功");}
int main(){
SeqList List;
List.last=0;
int n;
scanf("%d",&n);
InsertList(&List,n,1);
return 0;}
/*MADE BY TXJ*/
追问
为什么VS2013中 scanf不安全,要用scanf_s?这个程序,我输入了一个数字,然后就没了。什么情况。本人C语言水平渣渣。。看不懂额。。
追答
在return前加scanf_s("%*d");
追问
随便输入一个数字,这个数字代表的是序号吧。插入指定元素1.为什么每次都是插入成功,没有溢出错误的?
追答
把InsertList(&List,n,1);改为InsertList(&List,n,5);或InsertList(&List,n,-5);就会错误