题解 | #序列中删除指定数字#

序列中删除指定数字

http://www.nowcoder.com/practice/7bbcdd2177a445a9b66da79512b32dd7

#include<stdio.h>
#include<malloc.h>
int main(void)
{
    int n,m;
    scanf("%d",&n);
    int *num=(int *)malloc(sizeof(int)*n);
    for(int i=0;i<n;i++)
        scanf("%d",&num[i]);
    scanf("%d",&m);
    int count=0;//因为题意说序列有可能有重复的,所以用count变量计数删除了多少个
    for(int i=0;i<n-count;i++)
        if(num[i]==m)
        {
            count++;
            int l=i;
            i=l-1;//挪动后的元素还没查看,所以-1,然后for循环再+1,则i仍然停留在原来的i位置上
            while(l<n-count)//确保数组移动时没有越界
            {
                num[l]=num[l+1];//数组元素的增删都需要其他数组元素挪动位置来覆盖掉要删除的元素
                l++;
            }
            
        }
    for(int i=0;i<n-count;i++)
        printf("%d ",num[i]);
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
05-16 11:16
已编辑
东华理工大学 Java
牛客73769814...:盲猜几十人小公司,庙小妖风大,咋不叫她去4️⃣呢😁
牛客创作赏金赛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务