C语言 一维数组练习~

/*
题目要求:一个表示战斗力的数组,要求删除数组中的某一数值,并插入新的数值,要求排序

思路:
1:查找要删除数字的下标
2:从下标开始,后面一个覆盖前面一个数字
3:数组的总长度要减去1
*/

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int count = 5;//表示数组的元素的个数
    double powers[] = { 42322, 45771, 41234, 40767, 40987 };
    double deletepower;//用户要删除的战斗力
    int deleteindex=-1;//要删除战斗力的下标,要给一个不可能的值,方便判断
    int i;//循环变量
    double insert;//新插入的战斗值
    printf("请输入要删除的战力值:\n ");
    scanf("%lf", &deletepower);
    for (i = 0; i < count; i++)
    {
        if (deletepower == powers[i])
        {
            //记录当前的下标
            deleteindex = i;
            break;//找到了要删除的战力值,直接跳出循环,提升效率
        }
    }
        //根据判断是否找到,执行后续的操作
        if (-1 == deleteindex)
        {
            printf("很遗憾,没有找到要删除的战力值,删除失败!\n");      
        }
        else
        {
            for (i = deleteindex; i < count - 1; i++)
            {
                powers[i] = powers[i + 1];
            }
            //删除完毕后,一定记得数组长度减1
            count--;
        }
    printf("删除后的结果为: \n");
    for (i = 0; i < count; i++)
    {
        printf("%.2lf\t\n", powers[i]);
    }

    //删除之后进行插入
    printf("请输入新插入的战斗值:\n ");
    scanf("%lf", &insert);
    powers[count] = insert;
    //插入操作完毕后,记得数组总长度+1;
    count++;
    printf("插入后的结果为: \n");
    for (i = 0; i < count; i++)
    {
        printf("%.2lf\t\n", powers[i]);
    }
    //如果想让战力值有序,直接使用冒泡排序即可

}

只有在至少删除一个数值后才能插入新的数值,程序还可以改进~

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值