一道c语言的问题,不知道错哪了,求指正

题目:4、编程题:定义函数void sort(int a[],int n),用选择法对数组a中的元素升序排列。自定义main函数,在主函数中输入n个整数并在其中调用sort函数。
输入输出示例
Input n:6
Input array of 6 integers:1 5 -9 2 4 -6
After sorted the array is:-9 -6 1 2 4 5

问题代码如下:

#include<stdio.h>
int sort(int a[],int n){
    int t,i,j,min;
    for(i=0;i<n-1;i++){
        min=a[i];
       for(j=1;j<=n;i++){
        if(min>a[j]){
            t=min;
            min=a[j];
            a[j]=t;
        }
    }
    }
    return a[i],min;
}
int main()
{   
    int n,i,j,min;
    scanf("%d",&n);
    int a[n],*p;
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++){
        *p=a[i];
        printf("%d",sort(*p,n));
    }
    return 0;
}

无法输出结果

我尝试修改其中的一部分,

for (i = 0; i < n; i++)
    {
        // *p = a[i];
        sort(a[i], n);
        printf("%d",a[i]);
    }
    return 0;



依旧无法正常输出,
请告诉我怎么修改它,和错误之处

怎么可以把sort放到循环里呢???
修改如下:


#include<stdio.h>
void sort(int a[],int n){
    int t,i,j;
    for(i=0;i<n-1;i++){
       for(j=i+1;j<n;j++){
        if(a[i]>a[j]){
            t=a[i];
            a[i]=a[j];
            a[j]=t;
        }
    }
    }
}
int main()
{   
    int n,i;
    scanf("%d",&n);
    int a[n],*p;
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    p = a;
    sort(p,n);
    for(i=0;i<n;i++){  
        printf("%d ",a[i]);
    }
    return 0;
}