【发布时间】:2021-04-10 14:00:48
【问题描述】:
我正在练习嵌套 for 循环练习,并想制作一个打印如下内容的程序:
How many rows do you want?: 4
0
000
00000
0000000
到目前为止,这是我的程序:
#include <stdio.h>
int main(void) {
int x;
printf("How many rows do you want in the pyramid? (newlines included): ");
scanf("%d", &x);
for (int i = 1; i <= x; i++) {
printf("\t");
for (int j = 1; j <= i; j++) {
if (i % 2 == 0) {
break;
}
printf("0");
}
printf("\n");
}
return 0;
}
我的代码像我希望的那样工作,但它输出的金字塔是这样的:
How many rows do you want in the pyramid? (newlines included): 6
0
000
00000
如何将其格式化为看起来像一个实际的金字塔而不是像现在这样的直角三角形?我也知道还有其他方法可以做到这一点,但我尝试在这个练习中运用我的创造力。
【问题讨论】:
-
空白行是因为你用
if (i % 2 == 0) { break; }跳过了隔行除此之外你需要在每行打印一些前导空格,并计算所需的0字符数。 -
这里有一个提示:首先使用
_或x等可打印字符代替空格。它们更容易计数,更容易看到您在哪里打印或没有打印您需要的东西。 -
另一个提示:计算
0的数量和每一行的空格。这些数字与行号有何关系?
标签: c nested-loops