【发布时间】:2020-10-06 08:33:32
【问题描述】:
我正在尝试使用 for 循环在 C 中编写一个程序,该循环将输出类似于以下的模式:
1
2 3
4 5 6
7 8 9 10
如您所见,该模式是一个直角三角形,每一行的数字数量与每行中的第一个数字相同。我是 C 的初学者,并选择着手解决以练习我对 for 循环的使用并逐步完成此操作,因此我选择首先找出如何打印第一列。到目前为止,这是我的代码:
#include <stdio.h>
int main()
{
int n;
int p = 1;
printf("enter number of rows: ");
scanf("%d", &n);
for (int i= 1; i <= n; i += p++){
printf("%d\n", i);
}
return 0;
}
我发现每列的第一个数字在分解时都增加了 1,例如 (1 + 1 = 2, 2 + 2 = 4, 4 + 3 = 7) 如您所见,我加粗的每个数字构成了第一列。我的问题是,当我要求用户输入一个值来组成特定数量的行时,例如 5,for 语句只打印出 4 行,如下所示:
enter number of rows: 5
1
2
4
我猜这是由于语句 i
【问题讨论】:
-
您需要 两个 嵌套循环:外层用于计算行数,内层用于计算每行的数字。您可以使用另一个自变量来控制打印的数字(始终比之前打印的数字多 1)。所以你应该逐行打印,而不是逐列打印。
-
这有一个名字——弗洛伊德三角