题解 | #序列中删除指定数字#
序列中删除指定数字
https://www.nowcoder.com/practice/7bbcdd2177a445a9b66da79512b32dd7
#include <iostream>
using namespace std;
int main() {
int a[51]={0}, b[51]={0};
int cnt=0,n=0,num=0;
while (cin >> n) { // 注意 while 处理多个 case
for(int i=0;i<n;i++)
{
cin>>a[i];
}
cin>>num;
for(int i=0;i<n;i++)
{
if(a[i]==num)
{
b[cnt++]=i;
}
}
// cout<<cnt<<endl;
int c=1;
// 删除元素
for(int j=0;j<cnt;j++,c++)
{
// 注意这里有一个偏移量!!因为索引变化了
// 索引也在动态变化
for(int i=b[j]-j;i<n-c;i++)
{
a[i] = a[i+1];
}
}
for(int j=0;j<n-cnt;j++)
{
cout<<a[j]<<" ";
}
cout<<endl;
}
}
// 64 位输出请用 printf("%lld")
#include <iostream>
using namespace std;
int main()
{
int a[51];
int num,c;
while (cin>>num)
{
int L=0;
for(int i=0;i<num;i++)
{
cin>>a[i];
}
cin>>c;
for(int i=0;i<num;i++)
{
if(a[i]!=c)
{
a[L++]=a[i];
}
}
for(int i=0;i<L;i++)
{
cout<<a[i]<<" ";
}
}
}

