用c语言函数编写杨辉三角的代码
时间: 2024-05-13 18:20:43 浏览: 107
下面是用C语言函数编写杨辉三角的代码:
```c
#include<stdio.h>
// 定义函数,生成杨辉三角
void generate(int n)
{
int arr[n][n]; // 定义二维数组来存储杨辉三角
int i, j;
// 循环生成杨辉三角
for (i = 0; i < n; i++) {
for (j = 0; j <= i; j++) {
if (j == 0 || j == i) {
arr[i][j] = 1; // 杨辉三角两边的数都是1
} else {
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; // 中间的数是上一行两个数之和
}
printf("%d ", arr[i][j]); // 输出杨辉三角中的数
}
printf("\n"); // 输出换行符
}
}
// 主函数
int main()
{
int n;
printf("请输入杨辉三角的行数:");
scanf("%d", &n);
generate(n); // 调用函数生成杨辉三角
return 0;
}
```
使用方法:运行程序,输入杨辉三角的行数,按回车键即可生成杨辉三角。
相关问题
用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>
int YangHui(int i, int j) {
if (j == 0 || j == i) {
return 1;
} else {
return YangHui(i-1, j-1) + YangHui(i-1, j);
}
}
int main() {
int n;
printf("请输入杨辉三角的行数:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", YangHui(i, j));
}
printf("\n");
}
return 0;
}
```
首先,我们定义了一个名为`YangHui`的递归函数,它的参数`i`表示杨辉三角的行数,参数`j`表示杨辉三角中当前行的位置,函数返回当前位置的值。
在函数内部,我们首先判断当前位置是否在杨辉三角的边缘,如果是,就返回1,否则就递归计算上一行的相邻两个位置的值之和。
在`main`函数中,我们输入杨辉三角的行数,并使用嵌套的循环打印出整个杨辉三角。
阅读全文