用c语言实现:定义一个长度为5的数组,分别实现在第三个位置插入数字3和删除第一个元素
时间: 2024-09-10 18:30:13 浏览: 54
在C语言中,我们可以定义一个动态数组,并通过指针操作来实现插入和删除元素的功能。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 功能:在第三个位置插入数字3
void insertThird(int* arr, int length) {
if (length >= 3) {
// 移动其余元素到新位置
memmove(arr + 1, arr, sizeof(int) * (length - 1));
// 将3插入到第三个位置
*(arr + 2) = 3;
printf("Inserted 3 at position 3.\n");
} else {
printf("Array is too small to insert at position 3.\n");
}
}
// 功能:删除第一个元素
int deleteFirst(int* arr, int* length) {
if (*length > 0) {
// 如果有元素,将第二个元素移动到第一个位置并减小长度
*arr = *(arr + 1);
(*length)--;
printf("Deleted first element.\n");
} else {
printf("Array is empty.\n");
}
return *arr; // 返回被删除的第一个元素,这里只是为了演示,实际应用中可以忽略
}
int main() {
int arr[5] = {1, 2, 4, 5, 6}; // 初始化数组
int length = sizeof(arr) / sizeof(arr[0]);
insertThird(&arr, &length); // 插入数字3
printf("Updated array: ");
for (int i = 0; i < length; i++) {
printf("%d ", arr[i]);
}
printf("\nDeleting first element...\n");
int removedElement = deleteFirst(&arr, &length);
printf("After deletion: ");
for (int i = 0; i < length; i++) {
printf("%d ", arr[i]);
}
printf("Removed element: %d\n", removedElement);
return 0;
}
```
这个程序首先初始化了一个长度为5的数组,然后分别在第三个位置插入数字3,并从第一个位置删除元素。注意,`memmove`函数用于安全地移动数据,避免数组越界。
阅读全文