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

发布时间:2024年01月24日

题目:

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;

}

?

文章来源:https://blog.csdn.net/m0_60077538/article/details/135813777
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。