C语言数组排序怎么写呀

//第一行首先是一个整数n,代表在场参加游戏的人数,接着是每个人的身高(整数,以厘米为单位),
//中间用空格隔开(人数不超过30);
//第二行是小白的身高。
//Output
//将大家的身高(当然包括小白)按照从低到高排序(每个数据用空格隔开)。
//Sample Input
//5 150 168 110 102 143
//185
//Sample Output
//102 110 143 150 168 185
我这个错哪了呀
#include<stdio.h>
#define N 200
int main()
{
int i,n,a[N]={0},x,j,t;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
{
scanf("%d",&x);
for(j=0;j<n-i-1;j++)
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
printf("%d",a[i]);
return 0;
}

供参考:

#include<stdio.h>
#define N 31
int main()
{
    int i,n,a[N]={0},x,j,t;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
         scanf("%d",&a[i]);
    }
    scanf("%d",&a[i]);//修改
    n++;              //修改
    for(i=0;i<n-1;i++)//修改
    {
         for(j=0;j<n-i-1;j++)//修改
         {
             if(a[j]>a[j+1])//修改
             {
                 t=a[j];
                 a[j]=a[j+1];
                 a[j+1]=t;
             }
         }
    }
    for(i=0;i<n;i++)  //修改
         printf("%d ",a[i]);
    return 0;
}