删除数组中指定的数字

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

删除数组中指定的数字


题目:

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


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


目录
相关文章
|
2天前
|
索引
Leetcode 给定一个数组,给定一个数字。返回数组中可以相加得到指定数字的两个索引
Leetcode 给定一个数组,给定一个数字。返回数组中可以相加得到指定数字的两个索引
|
2月前
|
存储 算法 数据处理
删除重复数字
删除重复数字
|
3月前
|
人工智能
输入一个数,将它插入数组中
输入一个数,要求按原来的规律将它插入数组中。
32 2
|
10月前
数组中插入一个数字
数组中插入一个数字
45 0
|
存储 算法 JavaScript
寻找数组中的重复数字
寻找数组中的重复数字
寻找数组中的重复数字
|
开发框架 .NET C#
C# 找出数组中只出现了一次的数字
.NET 生态越来越好,初学的朋友也越来越多。处理同一件简单的问题,随着我们知识的积累解决问题的方法也会越来越多。 开始学习一门新的语言,我们经常会去解决之前用别的语言解决过无数次的老问题,今天我们来看看这么一道简单的查重题。
106 0
找出数组中只出现一次的数字
找出数组中只出现一次的数字
97 0
输入一个整形数组,实现一个函数,来调整该数组中数字的顺序//使得数组中所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
输入一个整形数组,实现一个函数,来调整该数组中数字的顺序//使得数组中所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
110 0