用c语言程序编写杨辉三角
时间: 2024-12-01 17:12:29 浏览: 142
在C语言中,杨辉三角是一个经典的动态规划问题,可以利用数组来存储每一行的数据,然后通过递推的方式计算出下一行。下面是一个简单的示例,展示如何用C语言编写一个函数来打印前几行的杨辉三角:
```c
#include <stdio.h>
// 定义杨辉三角的大小
#define MAX_ROWS 10
// 打印杨辉三角
void printPascalTriangle(int rows) {
int triangle[MAX_ROWS][MAX_ROWS] = {0};
// 初始化第一行和第二行
for (int i = 0; i <= rows; i++) {
triangle[i][0] = triangle[0][i] = 1;
}
// 打印三角形
for (int i = 0; i < rows; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", triangle[i][j]);
}
printf("\n");
}
}
int main() {
// 调用函数打印前5行的杨辉三角
printPascalTriangle(5);
return 0;
}
```
当你运行这个程序时,它会打印出前5行的杨辉三角数组。每一行代表一个组合数,例如第i行第j个数字表示从n个不同元素中选择j个的组合数。
相关问题
用C语言怎么编写杨辉三角
在C语言中编写杨辉三角,可以通过循环结构来实现,这里给出一个简单的示例,使用二维数组存储并打印出杨辉三角:
```c
#include <stdio.h>
// 定义三角形的最大行数
#define MAX_ROWS 10
// 功能:打印杨辉三角
void printPascalTriangle(int triangle[MAX_ROWS][MAX_ROWS], int n) {
for (int i = 0; i <= n; i++) { // 遍历行
for (int j = 0; j <= i; j++) { // 遍历列
printf("%d ", triangle[i][j]); // 打印当前元素
}
printf("\n"); // 换行
}
}
// 功能:填充杨辉三角
void generatePascalTriangle(int triangle[MAX_ROWS][MAX_ROWS], int row) {
if (row == 0 || row == 1) { // 第一行和第一列初始化为1
triangle[row][0] = triangle[0][row] = 1;
} else {
for (int col = 1; col < row; col++) {
triangle[row][col] = triangle[row - 1][col - 1] + triangle[row - 1][col];
}
}
}
int main() {
int triangle[MAX_ROWS][MAX_ROWS]; // 二维数组
int rows = sizeof(triangle) / sizeof(triangle[0]) - 1; // 获取最大行数
// 生成并打印杨辉三角
for (int i = 0; i <= rows; i++) {
generatePascalTriangle(triangle, i);
printPascalTriangle(triangle, i);
}
return 0;
}
```
在这个程序中,`generatePascalTriangle`函数负责计算并填充每个位置的数值,`printPascalTriangle`则用于显示整个三角形。当你运行这个程序,会看到杨辉三角逐行打印出来。
用c语言函数编写杨辉三角代码
下面是一个用C语言函数编写杨辉三角代码的例子:
```c
#include <stdio.h>
// 定义杨辉三角函数
void yanghui(int n)
{
int i, j, k;
int a[100][100]; // 定义二维数组存放杨辉三角
// 初始化杨辉三角
for (i = 0; i < n; i++) {
for (j = 0; j <= i; j++) {
if (j == 0 || j == i)
a[i][j] = 1;
else
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
// 输出杨辉三角
for (i = 0; i < n; i++) {
for (k = 0; k < n-i; k++)
printf(" "); // 输出空格对齐
for (j = 0; j <= i; j++)
printf("%4d", a[i][j]); // 输出每个数
printf("\n"); // 换行
}
}
int main()
{
int n;
printf("请输入杨辉三角的行数: ");
scanf("%d", &n);
yanghui(n); // 调用杨辉三角函数
return 0;
}
```
运行结果:
```
请输入杨辉三角的行数: 6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
```
阅读全文
相关推荐














