用c语言函数编写杨辉三角的代码
时间: 2024-05-13 10:20:43 浏览: 7
下面是用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>
// 定义杨辉三角函数
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
```
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`函数中,我们输入杨辉三角的行数,并使用嵌套的循环打印出整个杨辉三角。