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

题目:

77d80dcc5dba45a5b7891a7818e5042f.png

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

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

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

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

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

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

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

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

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

0560aadf5ad04b389cb6c4b646e853e9.png

 #include <stdio.h>

 

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 <stdio.h>

 

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 <stdio.h>

 

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;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卑微戏子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值