C编程发生错误返回乱码求解答

#include <stdio.h>
void main()
{
int t,b[]={2,6,7,9,0,5,3,1,4,8};
int i,j,k;
void sort(int *a,int n);
for(i=0;i<10;i++)
{
printf("%4d",b[i]);
}
printf("\n");

sort(b,10);

for(i=0;i<10;i++);
{
printf("%4d",b[i]);
}
printf("\n");

}
void sort(int a,int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(*(a+k)>
(a+j))
{
k=j;
t=*(a+k);
(a+k)=(a+i);
*(a+i)=t;
}
}
}
}

#include <stdio.h>
void main()
{
    int t,b[]={2,6,7,9,0,5,3,1,4,8};
    int i,j,k;
    void sort(int *a,int n);
for(i=0;i<10;i++)
{
printf("%4d",b[i]);
}
printf("\n");
    sort(b,10);

    for(i=0;i<10;i++)
    {
        printf("%4d",b[i]);
    }
    printf("\n");
}
void sort(int *a,int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        {
            if(*(a+k)>*(a+j))
            {
                t=*(a+j);
                *(a+j)=*(a+i);
                *(a+i)=t;
            }
        }
    }
}