递归方式
#include <stdio.h>
//递归计算杨辉三角
int cal(int a, int b)
{
int c;
if((b==1)||(b==a+1))
return 1; //若为x行的第一列或第x+1列,则输出1(第0行始终输出)
c=cal(a-1,b-1)+cal(a-1,b);
return c; //否则,为前一行第y-1列和第y列的和
}
int main()
{
int i,j,n;
printf("请输入需要显示的行数n=");
scanf("%d",&n);
for(i=0;i<=n;i++) //控制输出n行
{
for(j=0;j<24-i*2;j++) //控制输出第i行前面的空格
printf(" ");
for(j=1;j<i+2;j++)
printf("%4d",cal(i,j)); //输出第i行的第j个值
printf("\n");
}
return 0;
}