在 C 中绘制垂直金字塔

Drawing a Vertical Pyramid in C

我必须按如下方式获得所需的输出:

1 
2 6
3 7 10
4 8 11 13
5 9 12 14 15

但我似乎不知道该怎么做。我得到的是:

1 
2 6
3 7 6
4 8 7 6
5 9 8 7 6

这是我的代码:

#include<stdio.h>
int main()
    {
      int n,i,j;
      scanf("%d",&n);
      for(i=1;i<=n;i++)
      {
        for(j=0;j<i;j++)
        {
          if((j+1)==1)
            printf("%d ",i);
          else
            printf("%d ",i+n-j);
        }
        printf("\n");
      }
      return 0;
    }

但我理解想要的输出: 我必须像直角三角形一样按升序打印从 1 到 15 的数字。

#include <stdio.h>

#define SZ 5

int main()
{
    int i,j, add = SZ, val[SZ+1] = {1};
    for( j=1; j<=SZ; ++j )
    {
        for( i=0; i<j; ++i )
            printf( "%2d ", val[i]++ );
        printf( "\n" );
        val[j] = val[j-1] + --add;
    }
}