总之直接就可以生成这样的
#include <stdio.h>
#define L 20 // 通过这个设置高度
int main(void) {
int pascal[L][L];
for (int i = 0; i < L; i++) {
int temp = i; // temp 是控制打印行的
for (int k = 1; k < L - i; ++k) { // 用来排版的
printf("\t");
}
for (int j = 0; j < L; j++) {
if (i == 0 || j == 0) {// 这里在前面赋基准值
pascal[0][j] = 1;
pascal[j][0] = 1;
} else {
pascal[i][j] = pascal[i - 1][j] + pascal[i][j - 1];// 控制打印行列
}
if (temp != -1) {
printf("%8d", pascal[temp--][j]); // 固定输出长度8,大概是两个制表符
}
}
putchar('\n');
}
return 0;
}