1.题目描述:
输入n个整数的序列,要求对这个数列进行去重操作;
所谓去重,是指对这个序列中每个重复出现的整数,只保留该数第一次出现的位置,删除其余位置
2.输入描述:输入包含两行,第一行包含一个正整数n(1 <= n <= 1000),表示第二行序列中数字的个数;
第二行包含n个整数(范围1-5000),用空格分隔
3.输出描述: 输出为一行,按照输入的顺序输出去重之后的数字,用空格分隔
如:输入:
5
10 12 15 12 75
输出:
10 120 15075
4.具体代码实现如下:
int main(){
int n = 0;
int arr[5000] = { 0 };
//输入数据
printf("请输入数据总数:");
scanf("%d",&n);
int i = 0;
for (i = 0; i < n;i ++){
scanf("%d",&arr[i]);
}
//去重
for (i = 0; i < n;i++){
int j = 0;
for (j = i + 1; j < n;j++){
//如果相等,则把后续袁术向前移动
if (arr[i] == arr[j]){
int k = 0;
for (k = j; k < n - 1;k ++){
arr[k] = arr[k + 1];
}
n--;
j--;
}
}
}
for (i = 0; i < n;i++){
printf("%d ",arr[i]);
}
return 0;
}