C语言,数组元素的增删

 #include <stdio.h>
 #include <stdlib.h>
 #define N 5 //宏定义,不是必须的(是个常量,不能在程序中进行加减运算)
 int main()
 {
    /*
    删除的逻辑
    12 34 23 67 9
    12 34 67 9 9
    1、查找要删除的数字的下表 2
    2、从下标开始,后面一个覆盖前面一个数字
    3、数组的总长度-1
         */
    int count = 5; //表示数组元素的个数
    double powers[] = {42322,45771,40907,41234,40767};
    double deletePower; //用户要删除的战力值
    int deleteIndex = -1; //要删除元素的下标,给一个不可能的初值,方便判断。
    int i; //循环变量
    double insertPower; // ner insert power
    printf("请输入要删除的战力值:\n");
    scanf("%lf",&deletePower);
    for(i = 0; i<count; i++)
    {
        if(deletePower == powers[i])
        {
            //记录下当前的下标
            deleteIndex = i;
            break; //找到了要删除的战力值,直接跳出循环,提升效率
        }
    }
    //根据判断(是否找到),执行后续操作
    if(-1 == deleteIndex)
    {
        printf("没有对应的战力值!\n");
    }
    else
    {
        //cover the former number from the index
        for(i = deleteIndex; i < count -1; i++)  //cover count-1 times
        {
            powers[i] = powers[i +1];
        }
     count--;
    }
    printf("Final result :\n");
    for(i = 0 ; i < count; i++)
    {
        printf("%.2lf\t",powers[i]);  //save 2 nums after dot
    }
    // insert a new num after delet
    printf("\n Please insert your new power num:\n");
    scanf("%lf",&insertPower);
    powers[count] = insertPower;
    // afer insert. length+1
    count++;
       for(i = 0 ; i < count; i++)
    {
        printf("%.2lf\t",powers[i]);  //save 2 nums after dot
    }

 }
![ressult](https://img-blog.csdnimg.cn/20181202151649643.jpg)

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值