描述
输入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])
{
//重复之后的元素向前挪1
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;
}