杨辉三角用c语言基基础指针子函数封装
时间: 2023-08-08 16:06:00 浏览: 159
当实现杨辉三角时,可以使用 C 语言的基础知识和指针来进行封装。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义函数,用于生成并打印杨辉三角
void generatePascalTriangle(int numRows) {
int** triangle = (int**)malloc(numRows * sizeof(int*)); // 分配二维数组的内存空间
// 为每一行分配内存空间
for (int i = 0; i < numRows; i++) {
triangle[i] = (int*)malloc((i + 1) * sizeof(int));
}
// 生成杨辉三角
for (int i = 0; i < numRows; 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 < numRows; i++) {
// 打印每一行的数字
for (int j = 0; j <= i; j++) {
printf("%d ", triangle[i][j]);
}
printf("\n");
}
// 释放内存空间
for (int i = 0; i < numRows; i++) {
free(triangle[i]);
}
free(triangle);
}
int main() {
int numRows;
printf("请输入杨辉三角的行数:");
scanf("%d", &numRows);
generatePascalTriangle(numRows);
return 0;
}
```
这段代码通过使用动态内存分配来创建一个二维数组来表示杨辉三角。generatePascalTriangle 函数用于生成并打印杨辉三角,接受一个参数 numRows 表示要生成的行数。在函数内部,首先为二维数组分配内存空间,然后使用两个嵌套的循环来生成杨辉三角的每个元素,并打印出来。最后,在程序结束时释放分配的内存空间。
请注意,在使用动态内存分配时,需要确保在适当的时候释放内存空间,以避免内存泄漏。
阅读全文