请用C语言输出杨辉三角形的图案
时间: 2024-05-03 21:21:08 浏览: 105
好的,以下是C语言输出杨辉三角形的代码:
```
#include <stdio.h>
int main() {
int rows, coef = 1, space, i, j;
printf("Enter the number of rows: ");
scanf("%d", &rows);
printf("\n");
for (i = 0; i < rows; i++) {
for (space = 1; space < rows-i; space++)
printf(" ");
for (j = 0; j <= i; j++) {
if (j == 0 || i == 0)
coef = 1;
else
coef = coef*(i-j+1)/j;
printf("%4d", coef);
}
printf("\n");
}
return 0;
}
```
运行程序后,输入要输出的行数,即可打印出相应的杨辉三角形。
相关问题
生成一个杨辉三角C语言程序
杨辉三角,也称帕斯卡三角或潘妥三角,是一种在数学上非常著名的图案,其中每个数字都是其上方两个数字之和。这是一个递归结构,非常适合用C语言来演示动态内存分配和循环的概念。
以下是一个简单的C语言程序,用于生成并打印杨辉三角的前几行:
```c
#include <stdio.h>
// 定义一个函数来计算并存储当前行的值
void printPascalRow(int row, int** arr) {
if (row == 0 || row == 1) { // 基本情况
for (int i = 0; i <= row; i++) {
printf("%d ", arr[row][i]);
}
printf("\n");
} else { // 递归情况
arr[row][0] = arr[row - 1][0];
arr[row][row] = arr[row - 1][row - 1];
for (int i = 1; i < row; i++) {
arr[row][i] = arr[row - 1, arr);
}
}
int main() {
// 初始化二维数组,大小为行数+1(因为要包含0)
int rows;
printf("Enter the number of rows to display: ");
scanf("%d", &rows);
int** triangle = (int**)malloc(sizeof(int*) * (rows + 1));
for (int i = 0; i <= rows; i++) {
triangle[i] = (int*)malloc(sizeof(int) * (i + 1)); // 内部也是动态分配
}
// 打印三角形
for (int i = 0; i <= rows; i++) {
printPascalRow(i, triangle);
}
// 释放动态内存
for (int i = 0; i <= rows; i++) {
free(triangle[i]);
}
free(triangle);
return 0;
}
```
运行这个程序时,输入想要显示的行数,它会输出对应数量的杨辉三角行。
阅读全文