在顺序表第i 个元素前插入一个值为x 的元素,并输出结果,C语言实现
时间: 2024-03-04 12:27:45 浏览: 40
假设顺序表为一个数组,长度为n,插入的元素为x,则可以按照以下步骤实现:
1. 首先判断插入位置是否合法,即i是否在[1,n+1]的范围内,如果不合法则输出错误信息并结束程序。
2. 从后往前遍历数组,将第i个元素及其后面的所有元素后移一位,腾出空间给新插入的元素。
3. 将x赋值给第i个元素。
4. 输出插入后的顺序表。
以下是具体的C语言实现代码:
```c
#include <stdio.h>
int main() {
int a[100], n, i, x;
printf("请输入顺序表长度n:");
scanf("%d", &n);
printf("请输入%d个元素的值:", n);
for(i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
printf("请输入要插入的元素x和插入位置i:");
scanf("%d%d", &x, &i);
// 判断插入位置是否合法
if(i < 1 || i > n+1) {
printf("插入位置非法!\n");
return 0;
}
// 从后往前遍历数组,将第i个元素及其后面的所有元素后移一位
for(int j = n; j >= i; j--) {
a[j] = a[j-1];
}
// 将x赋值给第i个元素
a[i-1] = x;
// 输出插入后的顺序表
printf("插入后的顺序表为:");
for(i = 0; i < n+1; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```