C语言选择排序,帮我看看吧,谢谢了

#include

void main()
{
int aa[]={2,7,5,3,1,9,4};
int i,j,a;
for (i=0;i<6;i++)
{
a=1;
for(int j=i+1;j<7;j++)
{
if(aa[j]<a)
a=j;
}
int t=aa[i];
aa[i]=aa[a];
aa[a]=t;
}
for(i=0;i<7;i++)
printf("%d ",aa[i]);
}

 #include <stdio.h>

void main()
{
    int aa[]={2,7,5,3,1,9,4};
    int i,j,a;
    for (i=0;i<6;i++)
    {
        a=i; //修改
        for(int j=i+1;j<7;j++)
        {
            if(aa[j]<aa[i]) //修改
                a=j;
        }
        int t=aa[i];
        aa[i]=aa[a];
        aa[a]=t;
    }
    for(i=0;i<7;i++)
        printf("%d ",aa[i]);
}
 #include <stdio.h>
void main()
{
    int aa[]={2,7,5,3,1,9,4};
    int i,a;
    for (i=0;i<6;i++)
    {
        a=i; //修改
        for(int j=i+1;j<7;j++)
        {
            if(aa[j]<aa[a]) //修改
                a=j;
        }
        int t=aa[i];
        aa[i]=aa[a];
        aa[a]=t;
    }
    for(i=0;i<7;i++)
        printf("%d ",aa[i]);
}

你的判定逻辑有问题

#include

void main()
{
int aa[]={2,7,5,3,1,9,4};
int i,j,a;
for (i=0;i<6;i++)
{
a=i;
for(int j=i+1;j<7;j++)
{
if(aa[j]<aa[i]) //修改
a=j;
}
int t=aa[i];
aa[i]=aa[a];
aa[a]=t;
}
for(i=0;i<7;i++)
printf("%d ",aa[i]);
}