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

序列中删除指定数字

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

相关推荐

11-29 11:21
门头沟学院 Java
点赞 评论 收藏
分享
11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
努力学习的小绵羊:我反倒觉得这种挺好的,给不到我想要的就别浪费大家时间了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务