C——语言选择排序法

请问哪里出了问题呢,为什么像
4
5 1 7 6就排序不出来呢?
#include
int main()
{
int n,i,j,temp,arr[n];
scanf("%d",&n);

for(i=0;i"%d",&arr[i]);
}

for(i=0;iindex=i;
    for(j=i+1;jif(arr[j]>arr[index])
        {
            index=j;
        }
        temp=arr[index];
        arr[index]=arr[i];
        arr[i]=temp;
    }
}
for(i=0;iif(i==0) printf("%d",arr[i]);
    else printf(" %d",arr[i]);
}
return 0;

}

img


代码


 int n;
    scanf("%d",&n);
    int arr[n+1];
    for(int i=0; i<n; ++i)
    {
        scanf("%d",&arr[i]);
    }
    for(int i=0; i<n; ++i)
    {
        for(int j=i+1; j<n; ++j)
        {
            if(arr[i]>arr[j])
            {

                int temp=arr[i];
                arr[i]=arr[j];
                arr[j]=temp;
            }

        }
    }
    for(int i=0;i<n;++i)
    {
        printf("%d ",arr[i]);
    }

这上传的代码,确定能看出问题么,你得先把格式整好呀,代码插入到代码块里边

img

#include<stdio.h>
int main()
{
    int n,arr[n];            
    int i,j,temp,pos;       
    scanf("%d",&n);
    for(i=0;i<n;i++)        
    {
        scanf("%d",&arr[i]);
    }
    for(i=0;i<n;i++)          
    {
        temp=arr[i];          
        pos=i;               
        for(j=i+1;j<n;j++)  
        {
            if(arr[j]<temp)   
            {
                temp=arr[j];
                pos=j;
            }
        }
        arr[pos]=arr[i];     
        arr[i]=temp;
    }
    for(i=0;i<n;i++)         
    {
        printf("%d ",arr[i]);
    }
    return 0;
 }