C语言打印杨辉三角,求解答
打印杨辉三角(也称为帕斯卡三角)是一个经典的编程问题,可以通过循环和数组来实现。杨辉三角的特点是每个数等于它上方两数之和。
实现步骤:
确定输出的行数:确定要打印的杨辉三角的行数。
使用二维数组存储:利用二维数组来存储杨辉三角的每个数,其中
triangle[i][j]
表示第i
行、第j
列的数值。初始化首行和每行的首尾元素:首行和每行的首尾元素都为1。
计算每行的其他元素:根据杨辉三角的性质,除去首尾元素外,每个元素都等于上一行相邻两个元素的和。
打印杨辉三角:遍历二维数组,按照格式打印每个数值。
示例代码:
c#include <stdio.h>
#define MAX_ROWS 10 // 定义最大行数,可以根据需要调整
int main() {
int triangle[MAX_ROWS][MAX_ROWS];
int i, j;
// 计算杨辉三角的数值并存储在数组中
for (i = 0; i < MAX_ROWS; i++) {
for (j = 0; j <= i; j++) {
if (j == 0 || j == i) {
triangle[i][j] = 1; // 首尾元素为1
} else {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]; // 中间元素为上一行两个元素之和
}
}
}
// 打印杨辉三角
for (i = 0; i < MAX_ROWS; i++) {
// 控制每行前面的空格,使得输出呈三角形状
for (j = 0; j < MAX_ROWS - i - 1; j++) {
printf(" ");
}
// 输出每行的数字
for (j = 0; j <= i; j++) {
printf("%d ", triangle[i][j]);
}
printf("\n");
}
return 0;
}
解释:
二维数组
triangle[MAX_ROWS][MAX_ROWS]
:用于存储杨辉三角的每个数值。计算逻辑:内层循环根据当前行的位置计算每个位置的数值,首尾元素为1,中间元素为上一行对应位置的两个数之和。
打印逻辑:外层循环控制行数,内层循环控制列数。在打印每行数值之前,通过输出空格使得输出的形状呈现为三角形。
这样,运行上述程序就可以输出指定行数的杨辉三角形了。可以根据实际需求调整 MAX_ROWS
来打印不同行数的杨辉三角。