pta上的题目,求解答。。

请应用数组存储用户输入的10个整数,编写算法将该数组按照从小到大的顺序排列好。用户再输入1个整数,编写代码把它插入原数列中,要求仍然保持从小到大有序。
编写程序时应考虑到所插入数的各种可能性(比原来所有的数都小;比原来所有的数都大;在最大数和最小数之间)。

输入格式:
请在一行中输入10整数,数据间以空格为间隔。
再在一行中输入1个待插入的整数。

输出格式:
将插入前后排好的有序序列分别在一行内输出,每个数的显示格式:占3位,右对齐。

#include <stdio.h>
void bsort(int *a,int n)
{
    int i,j,t;
    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;
              }
        }
}

int main()
{
      int a[11],i,j,d;
      for(i=0;i<10;i++)
          scanf("%d",&a[i]);
      bsort(a,10);
      scanf("%d",&d);
       for(i=0;i<10;i++)
          printf("%3d",a[i]);
      printf("\n");

      for(i=0;i<10;i++)
      {
          if(a[i] > d)
          {  
                for(j=10;j>i;j--)
                    a[j] = a[j-1];
                a[i] = d;
                break;
          }
      }
      if(i==10)
           a[10] = d;
      for(i=0;i<11;i++)
          printf("%3d",a[i]);
      return 0;
}