#include<stdio.h> int main() { int i,j,n=13; printf("N="); while(n>12) //控制输入正确的值以保证屏幕显示的图形正确 scanf("%d",&n); for(i=0;i<=n;i++) //控制输出 N行 { for(j=0;j<12-i;j++) printf(" "); //控制输出第i行前面的空格 for(j=1;j<i+2;j++) printf("%5d",c(i,j)); //输出第i行的第j个值 printf("/n"); } } int c(x,y) //求杨辉三角中第i行第y列的值 int x,y; { int z; if((y==1)||(y==x+1)) return(1); //若为x行的第1或第x+1列,则输出1 z=c(x-1,y-1)+c(x-1,y); //否则其值为前一行中第y-1列与第y列值之和 return(z); } /*运行结果如下: --------------------------------------------------------------------- N=12 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 1 10 45 120 210 252 210 120 45 10 1 1 11 55 165 330 462 462 330 165 55 11 1 1 12 66 220 495 792 924 792 495 220 66 12 1 Process returned 12 (0xC) execution time : 1.813 s Press any key to continue. ---------------------------------------------------------------------- */ 思考题: 自行设计一种实现杨辉三角形的算法。 解答: