输出杨辉三角形。注:每个数字设置4个域宽,上一行的第一个数字比下一行第一个数字右缩进2个空格,用c语言写给我
时间: 2024-10-13 16:12:25 浏览: 39
在C语言中,我们可以通过嵌套循环和动态内存分配来输出杨辉三角形。下面是一个示例代码,它使用了二维数组来存储杨辉三角的值,并按照指定格式打印:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 50
// 功能:计算并返回杨辉三角的第n行
int* generate_pascal_triangle(int n) {
int** triangle = (int**)malloc(n * sizeof(int*));
for (int i = 0; i < n; i++) {
triangle[i] = (int*)malloc((i + 1) * sizeof(int));
triangle[i][0] = triangle[i][i] = 1;
if (i > 0)
for (int j = 1; j < i; j++)
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
return triangle;
}
// 打印杨辉三角
void print_pascal_triangle(int* triangle, int size) {
for (int i = 0; i < size; i++) {
for (int j = 0; j <= i; j++) {
printf("%4d", triangle[i][j]);
// 上一行的第一个数字右缩进2个空格
if (j != 0)
putchar(' ');
}
printf("\n");
}
free(triangle);
}
int main() {
int rows;
printf("请输入杨辉三角的行数:");
scanf("%d", &rows);
int* pascal_triangle = generate_pascal_triangle(rows);
print_pascal_triangle(pascal_triangle, rows);
free(pascal_triangle); // 释放内存
return 0;
}
```
当运行这个程序并输入行数后,会输出对应的杨辉三角形。注意,因为杨辉三角的大小受限于`MAX_SIZE`,如果需要更大的范围,可以适当增加此常量。
阅读全文