杨辉三角c语言程序金字塔状
时间: 2023-11-22 22:50:36 浏览: 78
以下是C语言实现杨辉三角金字塔状的程序:
```c
#include <stdio.h>
#define N 12 //定义输出的杨辉三角行数,可以修改值,也可以修改成用户自输入
long combi(int n, int r){
int i;
long p = 1;
for(i = 1; i <= r; i++)
p = p * (n-i+1) / i;
return p;
}
int main(){
int n, r, t;
for(n = 0; n <= N; n++){
for(t = 0; t <= (N-n); t++)
printf(" "); //控制格式,输出金字塔状
for(r = 0; r <= n; r++){
printf("%3ld ", combi(n, r));
}
printf("\n");
}
return 0;
}
```
相关问题
杨辉三角形c语言程序金字塔状
以下是一个用C语言实现的杨辉三角形金字塔状的程序:
```c
#include <stdio.h>
#define N 12 //定义输出的杨辉三角行数,可以修改值,也可以修改成用户自输入
long combi(int n, int r){
int i;
long p = 1;
for(i = 1; i <= r; i++)
p = p * (n-i+1) / i;
return p;
}
int main(){
int n, r, t;
for(n = 0; n <= N; n++){
for(r = 0; r <= n; r++){
int i;
if(r == 0){
for(i = 0; i <= (N-n); i++)
printf(" ");
}else{
printf(" ");
}
printf("%3d ", combi(n, r));
}
printf("\n");
}
}
```
用do for输出杨辉三角c语言
在C语言中,我们可以使用嵌套循环(通常结合do-while结构)来打印杨辉三角,这是一种经典的算法应用。杨辉三角是一个数列构成的金字塔形状,每一行的第一个和最后一个数字都是1,中间的每个数字等于它上面两行对应的数字之和。
下面是一个简单的示例,展示了如何用do-while循环打印前n行的杨辉三角:
```c
#include <stdio.h>
void printPascalTriangle(int n) {
int row = 0;
int col = 0;
int num = 1;
do {
// 打印当前行
printf("%d ", num);
for (col = 1; col <= row; col++) {
if (col > 1) {
printf("%d ", Pascal_triangle(row - 1, col - 1));
}
}
printf("\n"); // 换行
num = 0; // 更新num,因为下一行第一个数总是1
// 向下一行移动
row++;
num = 1; // 设置下一个元素为1
} while (row <= n);
return;
}
int Pascal_triangle(int row, int col) {
if (col == 0 || col == row) {
return 1;
}
else {
return Pascal_triangle(row - 1, col - 1) + Pascal_triangle(row - 1, col);
}
}
// 主函数
int main() {
int n = 5; // 需要打印的杨辉三角的行数
printPascalTriangle(n);
return 0;
}
```
这个程序首先定义了一个`printPascalTriangle`函数,用于打印杨辉三角。内部还有一个递归辅助函数`Pascal_triangle`用于计算每一步的值。在主函数中,你可以更改变量`n`的值以调整打印的行数。
阅读全文