c语言杨辉三角编程题
更新时间:2023-10-17问题简介
杨辉三角是一个由数字排列成的三角形数表,其中每个数字是上面两个数字的和。例如,下面是杨辉三角的前五行:
1 1 1 1 2 1 1 3 3 1
您的任务是使用C语言编写程序,生成并打印出给定行数的杨辉三角。
解决方案
为了生成杨辉三角,我们可以使用二维数组来存储三角形中的数字。下面是一个简单的代码示例:
#includevoid generatePascalTriangle(int num_rows) { int triangle[num_rows][num_rows]; // 初始化三角形的第一列和对角线上的元素为1 for (int i = 0; i < num_rows; i++) { triangle[i][0] = 1; triangle[i][i] = 1; } // 计算三角形中剩余的元素 for (int i = 2; i < num_rows; i++) { for (int j = 1; j < i; j++) { triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]; } } // 打印杨辉三角 for (int i = 0; i < num_rows; i++) { // 打印空格对齐每行的数字 for (int k = 0; k < num_rows - i; k++) { printf(" "); } for (int j = 0; j <= i; j++) { printf("%4d ", triangle[i][j]); } printf("\n"); } } int main() { int num_rows; printf("请输入杨辉三角的行数:"); scanf("%d", &num_rows); generatePascalTriangle(num_rows); return 0; }
代码解释
以上代码中,我们首先定义了一个二维数组 `triangle[num_rows][num_rows]` 来存储杨辉三角的数字。我们使用了两个循环来初始化三角形的第一列和对角线上的元素为1。
然后,我们使用另外两个嵌套循环来计算并填充三角形中剩余的元素。每个元素都是上一行左边和正上方两个元素的和。
最后,我们使用两个嵌套循环来打印杨辉三角。为了美观,我们在每个数字之间和行之间添加了一些空格。
总结
杨辉三角是一个经典的数学问题,使用二维数组和嵌套循环,我们可以很容易地生成和打印出一个给定行数的杨辉三角。以上提供的C语言代码是一个简单的示例实现,您可以根据需要进行扩展和优化。