数组:

//顶级垃圾程序 
#include <bits/stdc++.h>
using namespace std;

int arr[100];
int n, m;
bool isRemove = false;
int main(){
	cin >> n;
	for (int i = 0; i < n; i++) cin >> arr[i];
	cin >> m;
	for (int i = 0; i < n; i++){
		if (arr[i] == m){
			arr[i] = 0;
			isRemove = true;
		}
		if (isRemove) arr[i] = arr[i + 1];
	}
	for (int i = 0; i < n - 1; i++) cout << arr[i] << ' ';
	return 0;
}

双端队列(结果要存在另一个地方):

//顶级垃圾程序 
#include <bits/stdc++.h>
using namespace std;

int n, m, cnt, num;
deque<int> dq;
queue<int> que;
int main(){
	cin >> n;
	for (int i = 0; i < n; i++){
		cin >> num;
		dq.push_back(num);
	}
	cin >> m;
	for (int i = 0; i < n; i++){
		if (dq.front() == m){
			dq.pop_front();
			continue;
		}
		que.push(dq.front());
		cnt++;
		//cout << dq.front() << ' ';
		dq.pop_front();
	}
	for (int i = 0; i < cnt; i++){
		cout << que.front() << ' ';
		que.pop();
	}
	return 0;
}