C语言打印杨辉三角,求解答

打印杨辉三角(也称为帕斯卡三角)是一个经典的编程问题,可以通过循环和数组来实现。杨辉三角的特点是每个数等于它上方两数之和。

实现步骤:

  1. 确定输出的行数:确定要打印的杨辉三角的行数。

  2. 使用二维数组存储:利用二维数组来存储杨辉三角的每个数,其中 triangle[i][j] 表示第 i 行、第 j 列的数值。

  3. 初始化首行和每行的首尾元素:首行和每行的首尾元素都为1。

  4. 计算每行的其他元素:根据杨辉三角的性质,除去首尾元素外,每个元素都等于上一行相邻两个元素的和。

  5. 打印杨辉三角:遍历二维数组,按照格式打印每个数值。

示例代码:

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 来打印不同行数的杨辉三角。