c语言杨辉三角金字塔
时间: 2024-06-24 08:01:19 浏览: 105
杨辉三角,也称为帕斯卡三角,是一个自古以来就有的数学概念,在C语言中,你可以用循环或递归的方式来构建它。这种三角形的特点是每个数字都是它上面两个数字的和,从左上角开始,每一行的最后一个数字和倒数第二个数字都是1。
下面是使用C语言打印杨辉三角的一个简单方法:
```c
#include <stdio.h>
void printPascalTriangle(int n) {
for (int line = 0; line < n; line++) {
// 前导空格
for (int spaces = n - 1 - line; spaces > 0; spaces--) {
printf(" ");
}
// 打印当前行的数字
for (int col = 0; col <= line; col++) {
if (col == 0 || col == line) {
printf("%d", 1); // 首尾数字为1
} else {
printf("%d", pascal_triangle[line][col]); // 使用前一行的数字计算当前位置的值
}
// 如果不是最后一列,加一个分隔符
if (col != line) {
printf(" ");
}
}
printf("\n"); // 换行
}
}
// 初始化杨辉三角的前一行
int pascal_triangle = {1};
// 计算并填充更大的三角形
for (int i = 1; i < n; i++) {
int *new_row = (int *)malloc(sizeof(int) * (i + 1));
new_row = new_row[i] = 1;
for (int j = 1; j < i; j++) {
new_row[j] = pascal_triangle[i - 1][j - 1] + pascal_triangle[i - 1][j];
}
// 将新行存储到数组中
for (int j = 0; j < i; j++) {
pascal_triangle[i][j] = new_row[j];
}
free(new_row); // 释放旧行空间
}
int main() {
int rows;
printf("Enter the number of rows for the Pascal's triangle: ");
scanf("%d", &rows);
printPascalTriangle(rows);
return 0;
}
```
运行这个程序时,会提示用户输入行数,然后它将打印出指定行数的杨辉三角。
阅读全文