删除数组中的指定元素(了解如何删除数组中的指定元素,并返回一个新的数组,看这一篇就足够了!)

简介: 删除数组中的指定元素(了解如何删除数组中的指定元素,并返回一个新的数组,看这一篇就足够了!)

1.题目描述

       先让我来看一下题目描述:

有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后数组中的元素,序列中未被删除数字的前后位置没有发生改变(不可以创建新的数组)。

我们用图来大体理解一下要求:

现在我们就大体理解了题目的要求。

2.题目讲解

       了解完了题目的意图,现在我们就对其进行讲解,首先我们先大致了解一下解题思路:

       1.要删除数组中的指定数据,我们就需要对数组进行遍历操作;

       2.不能创建新的数组,那么我们只能在原数组上进行修改操作;

解题代码如下:

#include<stdio.h>
int main()
{
  //原数组
  int arr[] = { 1,2,3,4,5,6,6,7,8,9,10 };
  //要被删除元素
  int deleteNumber = 6;
 
  int i = 0;
  int j = 0;
  //求出原数组长度
  int sz = sizeof(arr) / sizeof(arr[0]);
  //遍历数组
  for (i = 0; i < sz; i++)
  {
    //判断是否是所要删除的元素
    if (arr[i] != deleteNumber)
    {
      arr[j] = arr[i];
      j++;
    }
  }
  //打印修改后的数组中的数据
  for (int k = 0; k < j; k++)
  {
    printf("%d ", arr[k]);
  }
 
  return 0;
}

对于以上代码中的难以理解点,我们现在进行解释:

       在上面的代码中,我们创建了 i 和 j 两个变量,其中 i 变量是用来进行遍历数组的,而 j 变量是用来修改数组数据的,或者说是用来刷新原数组中的数据的;

简单来说 i 就是用来遍历整个数组,检查对应索引位置元素是否是目标元素,如果不是赋值给 j 位置,如果是则跳过该位置元素,而 j 在原地等待。

当然此问题有许多解决方案,以上只是讲解了其中一种,其余方案读者可以自己思考。


以上就是该问题的所有讲解了~~~

相关文章
|
7月前
|
前端开发 Java
java前端:删除数组中指定元素的方法
java前端:删除数组中指定元素的方法
112 1
|
24天前
查找数组中最小的元素
【10月更文挑战第30天】查找数组中最小的元素。
31 5
|
25天前
查找数组中最大的元素值
【10月更文挑战第29天】查找数组中最大的元素值。
28 4
数组筛选,将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10元素选出来,放入新数组,声明一个新的数组用于存放新数据newArr,遍历原来的旧数组,找到大于10的元素,依次追加新数组
数组筛选,将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10元素选出来,放入新数组,声明一个新的数组用于存放新数据newArr,遍历原来的旧数组,找到大于10的元素,依次追加新数组
|
6月前
|
编译器
数组\插入删除数组元素
数组\插入删除数组元素
24 0
|
7月前
如何删除数组中的某个元素?
如何删除数组中的某个元素?
79 0
|
7月前
|
算法 Java C++
请实现一个队列,支持以下操作:添加元素、删除第一个元素、获取第一个元素。
请实现一个队列,支持以下操作:添加元素、删除第一个元素、获取第一个元素。
50 0
曲线救国 —— 删除数组的指定元素
曲线救国 —— 删除数组的指定元素
38 0
删除数组中重复出现的值
删除数组中重复出现的值
74 0
删除顺序表中指定值的所有元素
顺序表是一种使用数组实现的数据结构。删除顺序表中指定值的所有元素,可以按照以下步骤进行操作:
293 1