删除数组元素

作者: Turbo 时间限制: 1S 章节: 一维数组

问题描述 :

已有一维数组,存储不超过100个整型数据,由用户输入一个元素值,从数组中删除与该值相等的所有元素(考虑到元素值可能重复,因此可能删除多个元素),并输出结果数组。

输入说明 :

用户可输入多组数据,每组数据由三行组成:

第一行:数组元素的个数n

第二行:n个数组元素,由空格分隔

第三行:需要删除的元素

输出说明 :

对于每组输入,输出最后的结果,整数之间以空格分隔。每行的开头与结尾无多余空格。

每组输出占一行。

如果结果数组为空,则输出“Empty array!”。

输入范例 :

5
1 2 3 4 5
3
20
1 2 3 1 2 3 4 5 6 7 1 2 3 1 2 3 4 5 6 7
2

输出范例 :

1 2 4 5
1 3 1 3 4 5 6 7 1 3 1 3 4 5 6 7

#include<stdio.h>
int main(){int n;while(scanf("%d",&n)!=EOF){int i,m;int j=0,k=0;int a[100];for(i=0;i<n;i++){scanf("%d",&a[i]);}scanf("%d",&m);for(i=0;i<n;i++){if(a[i]==m){for(j=i;j<n;j++){a[j]=a[j+1];	}k++;//n-k 每次去掉一个重复值最后输出位数减少一位i--;//去掉重复值后还需要从当前位起继续往后遍历}}if(n-k==0)printf("Empty array!");else{for(i=0;i<n-k-1;i++){printf("%d ",a[i]);}printf("%d",a[n-k-1]);}printf("\n");}return 0;
}