#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void printHY(int n) {
int arr[20][20] = { 0 };
for (int i = 0; i < n; i++) {
//每行开始第一个数字都是1
arr[i][0] = 1;
for (int j = 1; j <= i; j++) {
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
}
//循环 打印结果
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
void printArray(int* arr, int n) {
//打印数组函数
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
void printHYplus(int n) {
//用一维数组解决杨辉三角,实际就是动态问题
//这种方法每次必须从数组后面往前运算,否则会出错
int arr[20] = { 1 }; //给了一个初始值 1 ,即为第一行的值,之后无需操作
printf("1\n");//直接打印第一行,下面就不循环了
for (int i = 1; i < n; i++) {
for (int j = i; j > 0; j--) {
arr[j] += arr[j - 1];
}
printArray(arr, i + 1);
}
}
int main() {
int n = 0;
printf("请输入1 - 20 之间的整数:");
scanf("%d", &n);
printHYplus(n);
system("pause");
return 0;
}
杨辉三角
最新推荐文章于 2022-02-11 19:37:21 发布
本文介绍了一种使用C语言实现杨辉三角的方法,包括使用二维数组和一维数组的两种方式。通过详细的代码解析,展示了如何生成并打印杨辉三角,适合初学者理解和学习。
2282

被折叠的 条评论
为什么被折叠?



