杨辉三角形C语言代码
时间: 2025-01-04 17:17:24 浏览: 13
### 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;
}
```
这两种方法都能有效地生成指定数量级别的杨辉三角形图案。第一种方法更加节省内存资源;而第二种则提供了更好的可读性和灵活性。
阅读全文