0
点赞
收藏
分享

微信扫一扫

牛客网第98:序列中删除指定数字

那小那小 2022-02-07 阅读 69
c语言

要求:删除某一整数序列(可能有重复的数字)中指定的数字,删除之后,整个序列中元素的前后位置不发生变化。序列的长度和序列中元素大小均为 1~50 。

思路:

该整数序列我们可以将其用数组存储,那么我们知道,数组中删除某一元素之后,其之后的元素将依次往前移动一位,此时就达到了我们删除元素之后,序列中元素位置不发生变化的要求。

代码实现

#include<stdio.h>
int main()
{
    int n = 0;
    scanf("%d",&n);//元素个数
    int del = 0;
    int i = 0;
    int j = 0;
    int arr[50] = { 0 };
    for (j = 0; j < n; j++)//序列元素的输入
    {
        scanf("%d", &arr[j]);
    }
    j = 0;
    scanf("%d", &del);//要删除的指定数
    for (i = 0; i < n; i++)
    {
        if (arr[i] != del)
        {
            arr[j++] = arr[i];
        }
    }
    for (i = 0; i < j; i++)//删除之后,新数组重新打印
                           //因为删除一个元素之后,少了一个元素,所有数组打印到 j 就结束。
    {
        printf("%d ", arr[i]);
    }
    return 0;
}

因为这个题所涉及的知识点,我们都在程序中做了标注,所以如果小伙伴们有问题的话,可以仔细研究代码哦! 

举报

相关推荐

0 条评论