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

序列中删除指定数字

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;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 10:39
一个证都没&nbsp;我能填什么
程序员小白条:别人有,你为什么没有,还是这个道理,社会就是比较,竞争,淘汰,你要安逸,那么就要做好淘汰的准备
点赞 评论 收藏
分享
点赞 评论 收藏
分享
05-29 09:02
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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