用c语言编写杨辉三角,打印后是8行

如题所述

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

运行结果

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-28
int a[8][8],i,j;
for(i=0;i<8;i++)
{
for(j=8;j>=i;j--)
printf("%2c",' ');/*两个空格*/
for(j=0;j<=i;j++)
{
if(i==j||j==0)
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
printf("%3d ",a[i][j]); /*%3d后一个空格*/
if(i==j)
printf("\n");
}
}
相似回答