在C中打印1,2 1 1,3 2 1,4 3 2 1侧金字塔

时间:2014-10-07 20:31:40

标签: c

我正在尝试创建一个可以打印的功能

1
2 1
3 2 1
4 3 2 1

等,在C中,最多20个。我可以打印

1
1 2
1 2 3
1 2 3 4
好的。 救命? 这就是我到目前为止所拥有的。

int i, j;
for(i = 1; i<=20; i++) {
  for(j=1; j<=i; j++) {
    printf("%3d", j); 
  }
  printf("\n");
}

3 个答案:

答案 0 :(得分:3)

您可以简单地将第二个循环转换为从较高的数字转到较低的数字,如下所示:

int i, j;
for(i = 1; i<=20; i++) {
  for(j=i; j>0; j--) {
    printf("%3d", j); 
  }
  printf("\n");
}

这将从打印最大数字开始,以一个结束。

答案 1 :(得分:1)

当您执行for(j=1; j<=i; j++)时,您将在1开始j并计算到达i。您要执行的操作可以从i开始,倒计时(--)直到达到1

答案 2 :(得分:0)

尝试将您的第二个循环更改为for(j=i;j>=1;j--)。 它会打印出来 1 2 1 3 2 1 4 3 2 1 and so on... 我希望这就是你问的......