牛客网BC124 序列删除指定数字

题目:

牛客网BC124 序列删除指定数字_第1张图片

这道题核心的三个问题就是:

Q1:如何解决存放数字的问题?

Q2:如何识别被删除的数字?

Q3:如何删除掉特定数字并把数字其他数字输出?

解决这三个问题就能解决这道题。

首先是Q1,因为题目有说序列长度最多为50,是一个特定的序列长度大小,因此首选考虑使用一维数组,且数组大小只需要定在50即可。这样,我们就可以把数字存放的问题解决。

其次是Q2,识别被删除的数字,只需要让每一个数组中的数字与识别的数字相比较,用一个for循环即可。

Q3,删除掉特定数字可能比较难,但是我们可以让该数字用0或者负数代替,因为题目要求的数字范围是1到50,不会让我们输出0,所以如果该数字是0或者负数,我们只需要不输出它即可。

最后通过条件判断是否需要输出,是就输出,不是就不输出就可以了。

牛客网BC124 序列删除指定数字_第2张图片

 #include

 

int main() 

{

    int N = 0;

    scanf("%d",&N);

    int i = 0;

    int arr[50]={0};

    for(i=0;i<=N-1;i++)

    {

        scanf("%d",&arr[i]);

    }

    int delete = 0;

    scanf("%d",&delete);

    for(i=0;i<=N;i++)

    {

        if(arr[i]==delete)

        {

            arr[i]=0;

        }

    }

    for(i=0;i<=N;i++)

    {

        if(arr[i]>0)

        {

            printf("%d ",arr[i]);

        }

    }

    return 0;

}

#include

 

int main() 

{

    int N = 0;

    scanf("%d",&N);

    int i = 0;

    int arr[50]={0};

    for(i=0;i<=N-1;i++)

    {

        scanf("%d",&arr[i]);

    }

    int delete = 0;

    scanf("%d",&delete);

    for(i=0;i<=N;i++)

    {

        if(arr[i]==delete)

        {

            arr[i]=0;

        }

    }

    for(i=0;i<=N;i++)

    {

        if(arr[i]>0)

        {

            printf("%d ",arr[i]);

        }

    }

    return 0;

}

#include

 

int main() 

{

    int N = 0;

    scanf("%d",&N);

    int i = 0;

    int arr[50]={0};

    for(i=0;i<=N-1;i++)

    {

        scanf("%d",&arr[i]);

    }

    int delete = 0;

    scanf("%d",&delete);

    for(i=0;i<=N;i++)

    {

        if(arr[i]==delete)

        {

            arr[i]=0;

        }

    }

    for(i=0;i<=N;i++)

    {

        if(arr[i]>0)

        {

            printf("%d ",arr[i]);

        }

    }

    return 0;

}

 

你可能感兴趣的:(c语言)