C语言 选择法排序小问题

为什么j=1不行呢?虽然明白j=i+1循环次数更少更省时但是j=1也不会影响结果吧?只不过是多判断了几遍,不太理解为什么结果会出错


 
#include
main()
{
    int a[10];
    for(int i=0;i<10;++i){
        scanf("%d",&a[i]);
    } 
    for(int i=0;i<9;++i){
        for(int j=1;j<10;++j){
            if(a[i]>a[j]){
                int t;
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
    }
    for(int i=0;i<10;++i){
        printf("%d,",a[i]);
    }
} 

img


#include<stdio.h>
int main()
{
    int a[10];
    for(int i=0;i<10;++i){
        scanf("%d",&a[i]);
    } 
    for(int i=0;i<10;i++){
        for(int j=0;j<10;j++){
            if(a[i]<=a[j]){
                int t;
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
    }
    for(int i=0;i<10;++i){
        printf("%d,",a[i]);
    }
} 

试试这样子

外层循环少写了一次