用C语言写以下程序:向顺序表中第i个位置插入一个新的元素x,如果i不合理则显示出错信息并退出运行
时间: 2023-03-28 13:04:33 浏览: 123
以下是用 C 语言编写的程序,用于在顺序表中插入新元素:
```
#include <stdio.h>
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 存储顺序表元素的数组
int length; // 顺序表的当前长度
} SqList;
// 在顺序表中第 i 个位置插入新元素 x
int InsertElem(SqList *L, int i, int x) {
if (i < 1 || i > L->length + 1) { // 判断 i 是否合法
printf("Error: Invalid position!\n");
return ;
}
if (L->length >= MAXSIZE) { // 判断顺序表是否已满
printf("Error: The list is full!\n");
return ;
}
for (int j = L->length; j >= i; j--) { // 将第 i 个位置及其后面的元素后移一位
L->data[j+1] = L->data[j];
}
L->data[i] = x; // 将新元素插入到第 i 个位置
L->length++; // 顺序表长度加 1
return 1;
}
int main() {
SqList L = {{1, 2, 3, 4, 5}, 5}; // 初始化顺序表
int i = 3, x = 6; // 插入位置和新元素
if (InsertElem(&L, i, x)) { // 插入成功
printf("Insert %d at position %d successfully!\n", x, i);
for (int j = 1; j <= L.length; j++) { // 输出插入后的顺序表
printf("%d ", L.data[j]);
}
printf("\n");
}
return ;
}
```
如果 i 不合法,则会输出错误信息并退出运行。
阅读全文