删除一个数组中重复元素这样写为什么不对?

#include
int main()
{
int n,i,j,m=0;
scanf("%d",&n);
int a[n];
for(i=0;i scanf("%d",&a[i]);
printf("%d",a[0]);
for(i=0;i {
for(j=i+1;j
{if(a[j]==a[i])
for(m=j;m
{a[m]=a[m+1];}
--n;
--j;}
}
for(i=1;i

printf("%2d",a[i]);
return 0;
}

img


int main()
{
    int n, i, j, m = 0;
    scanf("%d", &n);
    int a[n];
    for (i = 0; i < n; i++) //
        scanf("%d", &a[i]);

    // printf("%d", a[0]);
    for (i = 0; i < n - 1; i++)
    {
        for (j = i + 1; j < n; j++) //;
        {
            if (a[j] == a[i])
            { //
                for (m = j; m < n - 1; m++)
                {
                    a[m] = a[m + 1];
                }
                --n;
                --j;
                --i; //
            }        //
        }
    }
    for (i = 0; i < n; i++) //
        printf("%2d", a[i]);
    return 0;
}