index=i,index=j,具体是干嘛的,为啥去掉等于i的情况排序后最后两个数位置不对

#include<stdio.h>
int main(void)
{
int a[6]={4,5,6,3,2,1};
int i,j,index,min=0,b=0;
for(i=0;i<=n-1;i++)
{
min=a[i];
//index=i;
for(j=i;j<=n-1;j++)
{
if(a[j]<min)
{
min=a[j];
index=j;
}
}
b=a[i];
a[i]=a[index];
a[index]=b;
}
for(i=0;i<=n-1;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}

因为i等于n-1时与倒数第二个进行了交换,你可以当i等于n-2和n-1时打印一下数组a和index,你会发现最后index值有问题,相当于没有初始化,给它一个i值相当于初始化