C语言数组增加、删除实战-创新互联

需求: 根据要求操作排行榜战力值
  1. 删除战斗力42322
  2. 插入战斗力41000并保持降序

删除逻辑

站在用户的角度思考问题,与客户深入沟通,找到南溪网站设计与南溪网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、网站建设、企业官网、英文网站、手机端网站、网站推广、国际域名空间、雅安服务器托管、企业邮箱。业务覆盖南溪地区。

42322        45771        40907        41234        40767

42322        45771        41234        40767

  0                1                2                3                4

  1. 查找要删除数字的下标,比如2
  2. 从下标开始,后面一个覆盖前面一个数字
  3. 删除一个元素过后,数组总长度-1。不减总长度,后面那个数会重复
#include#include//查找要删除数字的下标,42322
//从下标开始,后面一个覆盖前面一个数字
//删除一个元素过后,数组总长度-1。不减总长度,后面那个数会重复
//插入41000
int main()
{
    double nums[] = {42322,45771,40907,41234,40767};
    int count = 5;       //数组长度,定义这个方便后面使用
    double del;          //输入要删除的数字
    int del_index = -1;  //要删除数字的下标初值,要不存在的
    int insert_index;    //需要插入位置的下标
    double insert_num;      //需要插入的数字

    printf("请输入需要删除的数字:");
    scanf("%lf",&del);
    for(int i = 0;i< count;i++) //第一个for循环查找下标
    {
        if(del == nums[i])
        {
            del_index = i;
            break;       //找到了要删除的下标,直接跳出循环
        }
    }

    // 判断如果下标恒等于-1,就是没有找到
    if(del_index == -1)
    {
        printf("很遗憾,没有找到需要删除的值\n");
    }
    else
    {
        // 从找到的下标开始覆盖,后面的覆盖给前面的
        // 循环条件,小于最后一个值的角标位置结束循环
        for(int i = del_index;i< count- 1;i++)
        {
        nums[i] = nums[i + 1];
        }
        // 删除成功,这个时候数组总长度-1
        count-=1;
    }
    // 删除结束,使用循环打印结果
    for(int i = 0;i< count;i++)
    {
        printf("%.1lf\t",nums[i]);
    }

    // 按输入的目标位置插入数字
    printf("\n请输入需要插入的下标:");
    scanf("%d",&insert_index);
    printf("请输入需要插入的数字:");
    scanf("%lf",&insert_num);
    //从后向前遍历,将元素整体向后移动一位,空出来目标位置
    for(int i = count;i >= insert_index;i--)
    {
        nums[i] = nums[i -1];
    }
    // 目标位置空出来了,插入我们的目标数字
    nums[insert_index] = insert_num;
    // 插入成功,数组长度加1
    count+=1;
    // 插入结束,使用循环打印结果
    for(int i = 0;i< count;i++)
    {
        printf("%.1lf\t",nums[i]);
    }
    return 0;
}

#include#includeint main()
{
    double array[] ={1.1, 2.2, 3.3,4.4,5.5,6.6,7.7,8.8};
    // 计算数组长度,类似于 总价/单价=数量
    int len = sizeof(array) / sizeof(array[0]);
    // 删除下标
    int index = -1;
    // 插入数字
    double insert_num;
    // 插入位置
    int insert_index;

    printf("原始数组内容为:\n");
    for(int i = 0; i< len; i++){
        printf("%.1lf\t", array[i]);
    }
    printf("\n请输入删除的下标(0-%d):", len-1);
    scanf("%d", &index);
    // 下标范围判断是否合法
    if(index >len-1 || index< 0){
        printf("您输入的下标不合法!");
        exit(0);
    } else {
        for(int i = index; i< len;i++){
            array[i] = array[i+1];
        }
    }
    // 数组长度减1
    len--;
    // 打印删除过后的结果
    printf("删除过后的结果:\n");
    for(int i = 0; i< len; i++){
        printf("%.1lf\t", array[i]);
    }

    // 指定位置插入数据
    printf("\n请输入插入的下标(0-%d):", len-1);
    scanf("%d", &insert_index);
    printf("请输入插入的数字:");
    scanf("%lf", &insert_num);
    // 从后向前遍历,将元素整体向后移动一位,空出来目标位置
    for(int i = len - 1;i >= insert_index;i--){
        array[i + 1] = array[i];
    }
    array[insert_index] = insert_num;
    // 放入目标元素,数组长度加1
    len++;
    printf("插入过后的结果:\n");
    for(int i = 0; i< len; i++){
        printf("%.1lf\t", array[i]);
    }

    printf("\n");
    return0;
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站栏目:C语言数组增加、删除实战-创新互联
标题路径:http://hbruida.cn/article/dpjcpj.html