#include <stdio.h>
int main()
{
int n,i,j=0,k;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]==a[j])
{
for(k=j;k<n-1;k++)
{
a[k]=a[k+1];
}
n--;
j--;
}
}
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
第21 22行的n--,j--较难理解,n--是去重一个就让数组长度减一,方便一会打印;j--则是和j下次循环时j++作用相互抵消,再判断一次新的a[j](即原先的a[j+1],向前移了一位)和a[i]是否相等

京公网安备 11010502036488号