文章目录[隐藏]

数组增删元素

#include <stdio.h>
#include <stdlib.h>
int main()
{
    //删除数组中的一个数字
    /*
        数组删除逻辑
        查找要删除的数字下标
        从该数开始后面一个数字覆盖前面的数字
        数组总长度减一
    */

    //1、逐步分析定义所需变量
    double power[] = {5417, 3254, 7854, 6589 ,3214};    //所需数组
    int count = 5;                                      //数组元素个数
    double powerDel;                                    //要删除的数字
    int i;                                              //循环所需循环变量
    int temp;                                           //用来记录下标值
    double store;                                       //用来辅助覆盖
    double powerInster;

    //2、输入要删除的数字
    printf("请输入要删除的数字:");
    scanf("%lf", &powerDel);

    //3、判断输入数字是否存在于数组中,若存在记录下标并退出循环,若不存在提示输入错误。
    for(i = 0; i < count; i++)
    {
        if(powerDel == power[i])
        {
            temp = i;
            break;
        }
        if(i == count - 1)
        {
            printf("您输入的数字不存在!\n");
            exit(0);
        }
    }

    //4、从要删除的数开始后面的数字逐一覆盖前面的数字
    for(i = temp ; i < count; i++ )
    {
        power[i] = power[i + 1];
    }

    count--;    //数组总数减一

    //5、输出
    printf("删除之后的数组为:\n");
    for(i = 0; i < count; i++ )
    {
        printf("%.0lf\t", power[i]);
    }

    //向数组中插入一个数值
    printf("\n");
    printf("********************************\n");

    //1、输入要插入的数值
    printf("请输入要插入的数值:");
    scanf("%lf", &powerInster);

    //将要插入的数值作为最后一项插入到数组中
    power[count] = powerInster;

    count++;    //数组总数加一

    //输出
    printf("插入后数组为:");

    for(i = 0; i < count; i++)
    {
    printf("%.0lf\t", power[i]);
    }

    return 0;
}