【发布时间】:2020-04-06 19:42:53
【问题描述】:
我是新手,我的问题是我无法使用数组打印帕斯卡半金字塔。 我知道如何在没有数组的情况下使用此代码:
int i, j;
for (i = 1; i <= 5; ++i) {
for (j = 1; j <= i; ++j) {
printf("%d ", j);
}
printf("\n");
}
当我尝试使用具有相同逻辑的数组来执行此操作时,我无法将其打印出来:
#define N 11
int main() {
int pin[N][N];
for (int i = 1; i < 5; i++) {
for (int j = 1; j < i; j++) {
printf("%d", pin[i][j]);
}
printf("\n");
}
}
我认为这是我的错 --> printf("%d" , pin[i][j]);
但我想不通。
【问题讨论】:
-
打印时
pin[i][j]会有什么价值? -
@vapan 你的代码不使用数组也是错误的,先看看pascal's triangle是什么。
-
除了不初始化矩阵之外,请注意数组索引在 C(以及所有类似 C 的语言)中是从零开始的,这意味着您的矩阵可以正确访问索引
[0][0]到 @987654327 @。现在您正在访问(未初始化的)索引[1][1]到[4][4]。如果您要拥有一个 5x5 矩阵,请使用pin[5][5]声明它并使用for (int i = 0; i < 5; i++)。 -
你想要一个帕斯卡三角形还是第一个程序的输出?
-
对不起,正确的是“帕斯卡半金字塔”,我以为帕斯卡三角形是一样的。