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

序列中删除指定数字

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

相关推荐

我已急😭:这科软不就是可以拿钱买吗?我记得那一年一个学校买狠了,数学排名比北大高。
点赞 评论 收藏
分享
代码飞升AL:同学院本建议你换一个项目 就算你不去特意搜也应该知道点评不能写吧 保持投递不要停 然后快速弄一个项目换上去 公司就别挑了 我第一段120一天 快速跳就行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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