#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]是否相等