C语言二维数组求杨辉三角
时间: 2023-12-20 15:29:56 浏览: 105
以下是C语言求解杨辉三角的代码:
```c
#include <stdio.h>
int main() {
int arr[20][20];
int n;
printf("请输入行数:");
scanf("%d", &n);
int i,j;
for (i=0; i<n; i++) {
for (j = 0; j<= i; j++) {
if (i==j||j == 0) {
arr[i][j] = 1;
} else {
arr[i][j]=arr[i-1][j-1]+ arr[i - 1][j];
}
}
}
for (i = 0; i < n; i++) {
for (j = 0; j <= i; j++) {
printf("%5d", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
相关问题
c语言 二维数组 - 杨辉三角
在C语言中,杨辉三角是一种经典的数学数组结构,通常用于二项式系数的计算。它是一个从左上角到右下角逐渐递减的三角形,每个数字表示的是组合数(即从n个不同元素中取k个元素的组合数目)。例如,第一行和第一列都是1,第二行是1、1,第三行是1、2、1,以此类推。
创建一个二维数组来存储杨辉三角可以按照以下步骤:
1. 定义一个大小为(n+1) * (n+1) 的二维数组,其中n是要计算的最大阶数。
2. 初始化数组的第一行和第一列全为1。
3. 使用嵌套循环遍历数组,对于每一行i(除了第一行),从左到右填充数字,每个数等于当前行的左边一个数加上上面一行对应的数。
4. 每次填充完一个数后,都要更新这个位置的值。
下面是一个简单的C语言函数示例,用于打印杨辉三角的前n行:
```c
#include <stdio.h>
void printPascalTriangle(int n) {
int triangle[n + 1][n + 1];
// 初始化第一行和第一列
for (int i = 0; i <= n; i++) {
triangle[i][0] = triangle[0][i] = 1;
}
// 打印三角形
for (int i = 1; i <= n; i++) {
for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
printf("\n");
for (int k = 0; k <= i; k++) {
printf("%d ", triangle[i][k]);
}
}
}
// 示例
int main() {
int rows = 5;
printPascalTriangle(rows);
return 0;
}
```
当你运行此程序时,它会打印出杨辉三角的前5行。运行该程序时,可以调整`rows`变量的值以查看不同规模的杨辉三角。
c语言二维数组打印杨辉三角
杨辉三角是一个经典的数学问题,可以使用C语言中的二维数组和循环嵌套来实现打印。下面是一个示例代码:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入要打印的杨辉三角行数: ");
scanf("%d", &n);
int a[100][100] = {0};
for (int i = 0; i < n; i++) {
a[i][0] = 1;
for (int j = 1; j <= i; j++) {
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
```
这段代码首先要求用户输入要打印的杨辉三角的行数,然后定义一个二维数组a来存储杨辉三角的值。接着使用两个循环嵌套来计算杨辉三角的值,最后再使用一个循环来打印出杨辉三角。
阅读全文