c语言有帮我看看加一空格

在一行上输出从小到大排好序的n个数,每两个数据之间留一个空格。每两组数据之间留一个空行。
输入
3 3 1 2
5 4 5 2 1 3
输出
1 2 3

1 2 3 4 5
我的代码如下
#include<stdio.h>
int main()
{
int i=0;
int j=0;
int tmp,n;
int arr[20];
while(~scanf("%d",&n)){

for(i=0;i<n;i++)
{
    scanf("%d",&arr[i]);
}
for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(arr[j]<arr[i])
            {
                tmp=arr[i];
                arr[i]=arr[j];
                arr[j]=tmp;
            }
        }
    }

for(i=0;i<n;i++)
{
         if(i<n-1)
printf("%d ",arr[i]);
    else
        printf("%d\n",arr[i]);
}}

return 0;

}

供参考:

#include<stdio.h>
int main()
{
    int i=0,j=0,k=0;
    int tmp,n;
    int arr[20];
    while(~scanf("%d",&n)){

        for(i=0;i<n;i++)
        {
             scanf("%d",&arr[i]);
        }
        for(i=0;i<n-1;i++)
        {
           for(j=i+1;j<n;j++)
           {
               if(arr[j]<arr[i])
               {
                  tmp=arr[i];
                  arr[i]=arr[j];
                  arr[j]=tmp;
               }
           }
        }
        k == 0 ? k++:printf("\n"); //修改 每两组数据之间留一个空行。
        for(i=0;i<n;i++)
        {
            if(i<n-1)
                printf("%d ",arr[i]);
            else
                printf("%d\n",arr[i]);
        }
    }
    return 0;
}