当前位置:首页 > 行业动态 > 正文

c语言数组的增删改怎么写

在C语言中,数组是一种用于存储相同类型数据的集合,要实现对数组的增删改操作,可以使用以下方法:

1、增加元素:

创建一个足够大的数组,以容纳新元素;

将新元素插入到指定位置。

2、删除元素:

创建一个足够小的数组,以删除指定位置的元素;

将原数组中未被删除的元素复制到新数组中。

3、修改元素:

直接通过索引访问数组中的元素,并进行修改。

下面是一个示例代码,演示了如何实现对数组的增删改操作:

#include <stdio.h>
// 增加元素函数
void addElement(int arr[], int *size, int element) {
    int newSize = *size + 1; // 创建足够大的数组
    int temp[newSize]; // 临时数组用于存放原数组元素和新元素
    int index = 0;
    // 复制原数组元素到临时数组
    for (int i = 0; i < *size; i++) {
        temp[i] = arr[i];
    }
    temp[*size] = element; // 添加新元素到临时数组末尾
    // 将临时数组中的元素复制回原数组
    for (int i = 0; i < newSize; i++) {
        arr[i] = temp[i];
    }
    *size = newSize; // 更新数组大小指针
}
// 删除元素函数
void deleteElement(int arr[], int *size, int index) {
    int newSize = *size 1; // 创建足够小的数组
    int temp[newSize]; // 临时数组用于存放未被删除的元素
    int j = 0;
    // 复制未被删除的元素到临时数组
    for (int i = 0; i < *size; i++) {
        if (i != index) {
            temp[j] = arr[i];
            j++;
        }
    }
    temp[newSize] = '0'; // 添加结束符到临时数组末尾(可选)
    // 将临时数组中的元素复制回原数组
    for (int i = 0; i < newSize; i++) {
        arr[i] = temp[i];
    }
    *size = newSize; // 更新数组大小指针
}
// 修改元素函数(直接通过索引访问并修改)
void modifyElement(int arr[], int size, int index, int newValue) {
    if (index >= 0 && index < size) { // 确保索引有效
        arr[index] = newValue; // 修改指定位置的元素值
    } else {
        printf("Invalid index!
"); // 如果索引无效,输出错误信息
    }
}
int main() {
    int arr[] = {1, 2, 3, 4, 5}; // 原始数组
    int size = sizeof(arr) / sizeof(arr[0]); // 计算数组大小(元素个数)
    int indexToAdd = 2; // 要添加元素的索引位置为2(第三个位置)
    int elementToAdd = 6; // 要添加的元素值为6
    int indexToDelete = 3; // 要删除元素的索引位置为3(第四个位置)
    int elementToModify = 9; // 要修改的元素值为9(替换第4个元素)
    int modifiedIndex = 1; // 要修改的元素索引位置为1(第二个位置)
    int modifiedValue = 7; // 要修改的元素值为7(替换第2个元素)
    addElement(arr, &size, elementToAdd); // 添加元素到指定位置(第三个位置)
    deleteElement(arr, &size, indexToDelete); // 删除指定位置的元素(第四个位置)
    modifyElement(arr, size, modifiedIndex, modifiedValue); // 修改指定位置的元素值(第二个位置)
    printf("Modified array: 
"); // 输出修改后的数组内容
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("
");
    return 0;
}
0