题目描述
在给定的数组中删除数
输入
多组测试,每组第一行输入1个整数n(n<20),然后是n个整数 第二行输入1个整数m
输出
删除在第一行的n个整数中的数字m(多个的话都要删除),然后按照顺序输出剩下的数,
样例输入 Copy
5 1 2 3 4 3 3
样例输出 Copy
1 2 4
本人代码如下:
注意,如果数组中的数与要被删除的数全部相同,则输出一个空行
#include<stdio.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF){
int a[n],m,k=0;
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
int b[n]; //再创建一个新数组用以记录复合条件的数
for(int i=0;i<n;i++){
if(a[i]!=m){
b[k]=a[i];
k++;
}
}
if(k==0) printf("\n"); //如果没有符合条件的输出一个空行,有符合条件的,按序输出
else {
for(int i=0;i<k-1;i++)
printf("%d ",b[i]);
printf("%d\n",b[k-1]);
}
}
return 0;
}