c语言编程笔录

首页 >   > 笔记大全

笔记大全

c语言杨辉三角编程题

更新时间:2023-10-17

问题简介

杨辉三角是一个由数字排列成的三角形数表,其中每个数字是上面两个数字的和。例如,下面是杨辉三角的前五行:

   1
  1 1
 1 2 1
1 3 3 1

您的任务是使用C语言编写程序,生成并打印出给定行数的杨辉三角。

解决方案

为了生成杨辉三角,我们可以使用二维数组来存储三角形中的数字。下面是一个简单的代码示例:

#include 

void 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语言代码是一个简单的示例实现,您可以根据需要进行扩展和优化。