删除数组中指定的数字

简介: 删除数组中指定的数字

删除数组中指定的数字


题目:

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


b463ff393b81c1c7b663e83c036e0408_47e47caf98d8441fad8699a36d00c834.png


代码实现如下


#include<stdio.h>
int main()
{
  int arr[] = { 1,2,3,4,2,5 };
  int sz = sizeof(arr) / sizeof(arr[0]);
  int del = 0;//指定的数字
  scanf("%d", &del);
  int i = 0;
  printf("删除前->");
  for (i = 0; i < sz; i++)
  {
  printf("%d ", arr[i]);
  }
  printf("\n");
  int j = 0;//作为下标锁定的位置用来存放不被删除的数据
  for (i = 0; i < sz; i++)
  {
  if (arr[i] != del)
  {
    arr[j] = arr[i];
    j++;
  }
  }
  printf("删除后->");
  for (i = 0; i < j; i++)
  {
  printf("%d ", arr[i]);
  }
  return 0;
}


b7c329dc694b1c4c7cc3d0eaf0e05976_c8bf6de107f24297ae4a8d5d5cd58bc3.png


这里还有一种更简单粗暴的方法


直接遍历数组,不是指定数字就打印
否则跳过


代码实现如下


#include<stdio.h>
int main()
{
  int arr[] = { 1,2,3,4,2,5 };
  int sz = sizeof(arr) / sizeof(arr[0]);
  int del = 0;//指定的数字
  scanf("%d", &del);
  int i = 0;
  printf("删除前->");
  for (i = 0; i < sz; i++)
  {
  printf("%d ", arr[i]);
  }
  printf("\n");
  printf("删除后->");
  for (i = 0; i < sz; i++)
  {
  if (del != arr[i])
  {
    printf("%d ", arr[i]);
  }
  }
  return 0;
}


0be4bd5f913214e5ac3262315a90d360_e3a91e69224048249ac350a4fdb236a8.png


目录
相关文章
|
5月前
|
索引
删除数组中的指定元素(了解如何删除数组中的指定元素,并返回一个新的数组,看这一篇就足够了!)
删除数组中的指定元素(了解如何删除数组中的指定元素,并返回一个新的数组,看这一篇就足够了!)
数组中插入一个数字
数组中插入一个数字
69 0
|
6月前
|
存储 算法 数据处理
删除重复数字
删除重复数字
定义一个包含10个整数元素的数组,初始值由用户给定。找出数组中的最大数并连同下标一起输出。
定义一个包含10个整数元素的数组,初始值由用户给定。找出数组中的最大数并连同下标一起输出。
233 0
|
存储 算法 JavaScript
寻找数组中的重复数字
寻找数组中的重复数字
寻找数组中的重复数字
|
开发框架 .NET C#
C# 找出数组中只出现了一次的数字
.NET 生态越来越好,初学的朋友也越来越多。处理同一件简单的问题,随着我们知识的积累解决问题的方法也会越来越多。 开始学习一门新的语言,我们经常会去解决之前用别的语言解决过无数次的老问题,今天我们来看看这么一道简单的查重题。
127 0
找出数组中只出现一次的数字
找出数组中只出现一次的数字
121 0