指针排序函数,输出是数据有错

输出是一些乱码
修改下我的代码

img

#include
#define N 10
void sort(int *x,int n)
{    int i,j,k,t;
     for( i=0;i-1;i++)
     {       
         k=i;                 
         for( j=i+1;jif( x[k]>x[j])                             
                 k=j;             
             t=x[i],x[i]=x[k],x[k]=t;

     }
}
void main()
{       
    int a[N],n,*p;
    scanf("n=%d",&n);                     
    for(p=a;pscanf("%d",p);     
    sort(&p,n);                   
    for(p=a;pprintf("%3d",*p);
      
}

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