#include <stdio.h>
#define ARR_LEN 20 /*数组长度*/
/*二维数组存储杨辉三角*/
int createYangHuiTriangle (int yht[ARR_LEN][ARR_LEN], int n) {
int i,j;
for (i=0; i<n; i++)
for (j=n-1-i; j<=n-1+i; j++)
if (j==n-1-i || j==n-1+i)
yht[i][j]=1;
else
yht[i][j]=yht[i-1][j-1]+yht[i-1][j+1];
return 1;
}
/*打印杨辉三角*/
int printYangHuiTriangle (int yht[ARR_LEN][ARR_LEN], int n) {
int i,j;
for (i=0; i<n; i++) {
for (j=0; j<2*n-1; j++)
if (yht[i][j]!=0)
printf ("%4d",yht[i][j]);
else
printf ("%4c",32); /*输出空格以控制格式*/
putchar ('\n');
}
return 1;
}
int main(void) {
int yht[ARR_LEN][ARR_LEN]={0};
int n=8;
createYangHuiTriangle (yht,n); /*创建n行杨辉三角*/
printYangHuiTriangle (yht,n); /*打印n行杨辉三角*/
putchar ('\n');
getch(); /*屏幕暂留*/
return 0;
}
运行结果