描述
输入n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的整数,只保留该数第一次出现的位置,删除其余位置。
输入描述
输入包含两行,第一行包含一个正整数n(1 ≤ n ≤ 1000),表示第二行序列中数字的个数;第二行包含n个整数(范围1~5000),用空格分隔。
输出描述
输出为一行,按照输入的顺序输出去重之后的数字,用空格分隔。
思路:从第一个元素开始,第一个元素和之后的元素逐个比较,重复则去重;再从第二个元素开始,之后的元素个第二个元素依次比较,重复则去重;以此类推。
#include <stdio.h>int main()
{int n=0;scanf("%d",&n);int arr[1000]={0};int i=0;//输入n个整数for(i=0;i<n;i++){scanf("%d",&arr[i]);}//从第一个元素开始找for(i=0;i<n;i++){//找第i个元素之后的元素是否和第i个元素重复int j=0;for(j=i+1;j<n;j++){//找到重复的if(arr[i]==arr[j]){//重复之后的元素向前挪1int 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;
}