请问程序是哪里出了问题,为什么最后乱码了?


#include <stdio.h>
int main()
{
int n,i=1,j,post,t;
scanf("%d",&n);
int a[n+1];
int m=n;
while(m/10>0){
a[i]=m%10;
m=m/10;
i++;
}
a[i]=m;
for(i=1;i<=n-1;i++){
post=i;
for(j=i+1;j<=n;j++)
if(a[j]>a[post]) post=j;
if(post!=i)
{t=a[i];a[i]=a[post];a[post]=t;}
}
for(i=1;i<=n;i++)
{
if(a[i]!=a[i+1])
printf("%d",a[i]);
}
return 0;
}
经过调试发现,程序卡在第二个for循环,无法跳出来