题解 | #序列中删除指定数字#
序列中删除指定数字
https://www.nowcoder.com/practice/7bbcdd2177a445a9b66da79512b32dd7
看看吧,好巧妙的勒,我勒个豆
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[50];
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int num = 0;
scanf("%d", &num);
for (int i = 0; i < n; i++)
{
if (arr[i] > num || arr[i]<num)//不等于我们就打印
{
printf("%d ", arr[i]);
}
else
{
while (arr[i] == arr[i + 1])//如果等于了,那么我们就先判断,是不是有多个相邻的同值,有的话我们就让他们不相等位置,出条件时,此时的arr[i]还是等于我们的删除数的,我们跳到上面去还要i++的,所以不用怕,如果没有的话,那我们就不进来,直接跳到上面去++,打印下一个数!你学废了吗?
{
arr[i] = arr[i + 1];
i++;
}
}
}
return 0;
}
查看11道真题和解析