C语言在一维数组中删去特定值,该如何解决这个代码的一个问题?


#include
int main(){
    int n,d,cnt=0;
    int i,j=0;
    scanf("%d%d",&n,&d);
    int number[n];
    for(i=0;i"%d",&number[i]);
    for(i=0;iif(number[i]==d){
            cnt++;
            for(j=i;jfor(i=0;i"%d ",number[i]);
    return 0;
} 

当两个特定值一起出现时,这个代码只会删去其中一个特定值,该如何修改?
具体情况如下

img

for(i=0;i<n;i++)
{
        if(number[i]==d)
       {
            cnt++;
            for(j=i;j<n-cnt;j++) number[j]=number[j+1];
            i--;  //这里i要减去1,这样下次循环时才能继续检查i当前位置的值,否则就跳过去了
        }
}