写一个生成杨辉三角的C语言代码
时间: 2024-06-02 08:14:00 浏览: 78
#include <stdio.h>
int main() {
int rows, coef = 1;
printf("Enter the number of rows: ");
scanf("%d", &rows);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < rows - i; j++) {
printf(" ");
}
for (int j = 0; j <= i; j++) {
if (j == 0 || i == 0)
coef = 1;
else
coef = coef * (i - j + 1) / j;
printf("%4d", coef);
}
printf("\n");
}
return 0;
}
相关问题
杨辉三角形C语言代码
### C语言实现杨辉三角形
以下是使用C语言编写的两种不同方式来实现杨辉三角形的代码示例。
#### 方法一:不使用数组
这种方法直接利用嵌套循环结构,在每次迭代过程中动态计算系数并输出相应位置上的数值[^1]:
```c
#include <stdio.h>
int main() {
int rows, coef = 1, space, i, j;
printf("请输入行数:");
scanf("%d", &rows);
for (i = 0; i < rows; i++) {
// 打印空格以保持格式美观
for (space = 1; space <= rows - i; space++)
printf(" ");
for (j = 0; j <= i; j++) {
if (j == 0 || i == 0)
coef = 1;
else
coef = coef * (i - j + 1) / j;
printf("%4d", coef);
}
printf("\n");
}
return 0;
}
```
#### 方法二:使用数组存储数据
此方法先构建整个杨辉三角的数据表,再逐行打印出来。这种方式更易于理解和维护,并且可以方便地获取任意行列的具体值[^2]:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i, j;
scanf("%d", &n);
// 动态分配内存给二维数组
int (*a)[n] = malloc(n * sizeof(*a));
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (i == j || j == 0)
a[i][j] = 1;
else
a[i][j] = a[i-1][j] + a[i-1][j-1];
}
}
for (i = 0; i < n; i++) {
for (j = 0; j <= i; j++)
printf("%d ", a[i][j]);
printf("\n");
}
free(a); // 记得释放之前申请过的堆空间
return 0;
}
```
这两种方法都能有效地生成指定数量级别的杨辉三角形图案。第一种方法更加节省内存资源;而第二种则提供了更好的可读性和灵活性。
杨辉三角形C语言代码,带注释
/**
* @description: 生成杨辉三角形的C语言代码
* @param: int n 给定的行数
* @return: void
*/
void generateYangHuiTriangle(int n) {
int triangle[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) {
triangle[i][j] = 1;
} else {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", triangle[i][j]);
}
printf("\n");
}
}
阅读全文