c语言 在数组中 给负数后插入零
时间: 2024-10-15 11:11:16 浏览: 14
在C语言中,如果你有一个整型数组,并想要在给定的负数索引位置之后插入一个0,首先要确定数组的实际大小和插入的位置。因为数组索引是从0开始的,所以负数索引会指向数组结尾后的元素。例如,如果数组长度是`n`,你想在第`-i`个位置插入0,那么实际上是在第`n + i`个位置插入。
下面是一个简单的示例,假设我们有一个名为`arr`的数组:
```c
#include <stdio.h>
void insertZero(int arr[], int n, int index) {
// 检查索引是否越界
if (index < -n || index > 0) {
printf("Invalid index.\n");
return;
}
// 将数组元素向右移动
for (int i = n - 1; i >= index; i--) {
arr[i + 1] = arr[i];
}
// 在指定位置插入0
arr[index] = 0;
// 打印更新后的数组
for (int i = 0; i <= n; i++) {
printf("%d ", arr[i]);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int index = -2; // 负数索引,实际为数组末尾后第二个位置
insertZero(arr, n, index);
return 0;
}
```
运行这个程序,你会看到0被成功插入到了数组的相应位置。注意,这里的`insertZero`函数仅处理了负数索引的情况,对于正数索引,你需要先检查并调整插入位置。
阅读全文