#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//void initEdge(int a[][], int n);//这样会报错 //C语言中 只有第一维可以不指定大小 其它每一维都要指定
void initEdge(int a[][10], int n);//ok
void printArr(int a[10][10], int n);
void initOthers(int a[10][10], int n);
//输出杨辉三角//不要求对齐
// 1
// 1 1
// 1 2 1
// 1 3 3 1
//1 4 6 4 1
//某一行行的第2个数字是上一行 第1 第2个相加
//某一行行的第3个数字是上一行 第2 第3个相加
//最两端的都是1
int main() {
int line = 10;
int a[10][10];
initEdge(a, 10);
initOthers(a, 10);
printArr(a, 10);
return 1;
}
void initEdge(int a[10][10], int n) {
int i = 0;
for (; i < n; i++) {
a[i][0] = 1;
a[i][i] = 1;
}
}
void initOthers(int a[][10], int n) {
int i = 0;
int j = 0;
for (i = 2; i < n; i++) { //行
for (j = 1; j < i; j++) { //要计算的数字个数
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
}
void printArr(int a[][10], int n) {
int i = 0;
int j = 0;
for (i = 0; i < n; i++) { //行
for (j = 0; j <= i; j++) {
printf("%2d ",a[i][j]);
}
printf("\n");
}
}