c语言,求帮我看一下哪里出问题了



#include 

int main()
{
    int a[3] = { 6,8,4 };
    int i,t,j;
    for (j = 2; j >= 0; j--)
    {
        int ix = j;
        int max = a[j];
        for (i = 0; i < j+1; i++)
        {
            if (max < a[j])
            {
                max = a[i];
                ix = i;
            }
            t = a[j], a[j] = a[ix], a[ix] = t;//如果没有把i换成ix,在min
        }
        printf("%d", max);
    }
    return 0;
}



运行结果是486
我想要达到的结果

这是要把8,6,4这三个数从小到大排序,我想做一个选择排序的

15行的a[j]改为a[i];
20行放到18跟19行之间;

int ix = j;
int max = a[j];
for (i = 0; i < j+1; i++)
        {
            if (max < a[j])
            {}
 a[j] = a[ix];}

这个循环,一开始就不会执行if里的语句,后面就陷在这里了。改变一下初始值吧。
你这个逻辑好乱,下次画一画流程图吧,多几行注释也好,