c语言编程实现在一维数组中插入、删除和查找一个元素的操作,用函数实现,每个功能定义一个函数。
时间: 2024-03-05 17:48:40 浏览: 24
下面是一个实现在一维数组中插入、删除和查找一个元素的操作的C语言代码,每个功能都定义了一个函数。
```c
#include <stdio.h>
#define MAX_SIZE 100
void insert(int arr[], int *n, int pos, int val);
void delete(int arr[], int *n, int pos);
int search(int arr[], int n, int val);
int main() {
int arr[MAX_SIZE] = {1, 2, 3, 4, 5};
int n = 5;
// 插入元素
insert(arr, &n, 2, 6);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 删除元素
delete(arr, &n, 3);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 查找元素
int val = 4;
int pos = search(arr, n, val);
if (pos == -1) {
printf("%d not found\n", val);
} else {
printf("%d found at position %d\n", val, pos);
}
return 0;
}
// 在arr数组的pos位置插入val元素,n表示数组中元素的个数
void insert(int arr[], int *n, int pos, int val) {
if (*n >= MAX_SIZE) {
printf("Array is full\n");
return;
}
if (pos < 0 || pos > *n) {
printf("Invalid position\n");
return;
}
for (int i = *n - 1; i >= pos; i--) {
arr[i+1] = arr[i];
}
arr[pos] = val;
(*n)++;
}
// 删除arr数组的pos位置的元素,n表示数组中元素的个数
void delete(int arr[], int *n, int pos) {
if (pos < 0 || pos >= *n) {
printf("Invalid position\n");
return;
}
for (int i = pos; i < *n-1; i++) {
arr[i] = arr[i+1];
}
(*n)--;
}
// 在arr数组中查找val元素,n表示数组中元素的个数
// 如果找到,返回元素在数组中的位置;否则返回-1
int search(int arr[], int n, int val) {
for (int i = 0; i < n; i++) {
if (arr[i] == val) {
return i;
}
}
return -1;
}
```
注意,这个代码中使用了指针参数来修改数组元素的个数,这是因为在C语言中,函数只能返回一个值,无法返回多个值。因此,为了能够在函数中修改数组的元素个数,我们使用了指针参数。