在C中绘制一个垂直金字塔

时间:2015-01-29 18:29:20

标签: nested-loops control-structure

我必须得到如下所需的输出:

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之间的数字。

1 个答案:

答案 0 :(得分:0)

#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;
    }
}