给出n个整数在指定位置pos(位置从1起始)前插入给定的值val,请输入插入后的整数序列。C语言
时间: 2024-10-29 21:16:50 浏览: 33
在C语言中,你可以使用数组和循环结构来实现这个功能。假设有一个`int`类型的数组`arr`存储了n个整数,你想在位置`pos`处插入值`val`,可以按照以下步骤操作:
```c
#include <stdio.h>
// 函数声明,接受数组、长度、插入值和插入位置作为参数
void insert(int arr[], int n, int pos, int val);
int main() {
int n, pos, val;
printf("Enter the number of integers (n): ");
scanf("%d", &n);
// 创建数组并输入初始元素
int arr[n];
for (int i = 0; i < n; i++) {
printf("Enter integer %d: ", i + 1);
scanf("%d", &arr[i]);
}
printf("Enter the position to insert (1-indexed): ");
scanf("%d", &pos);
printf("Enter the value to insert: ");
scanf("%d", &val);
// 确保插入位置有效
if (pos <= n) {
// 在指定位置插入值
memmove(&arr[pos], &arr[pos - 1], sizeof(arr[pos]) * (n - pos + 1)); // 移动原元素到新位置
arr[pos - 1] = val; // 插入新值
// 打印插入后的数组
printf("Array after insertion at position %d is:\n", pos);
for (int i = 0; i < n + 1; i++) {
printf("%d ", arr[i]);
}
} else {
printf("Invalid position. Please enter a number between 1 and %d.\n", n);
}
return 0;
}
阅读全文