#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"); } }