杨辉三角c语言编程分析

2024-12-01 08:10:46
推荐回答(1个)
回答1:

以10层为例。定义一个int数组,赋初值为0,1,0...这样就把当前层的计算简化为用上一层的相邻2数相加,在输出当前数的同时把它存入数组对应位置,为下一层计算使用。举例代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#define N 10
int main(void){
int i, j, a[N+1]={0};
printf("Yang-Hui triangle 10 layer:\n");
for(*(a+1)=i=1;i<=N;i++){//利用本层某位上一层左右2位之和求得
printf("%*c",1+((N-i)<<1),' ');//计算并移动到屏幕上合适的位置
for(j=i;j>=1;j--)
printf("%4d",*(a+j)+=*(a+j-1));//输出当前数并存入数组,供下一层计算用
printf("\n");
}
return 0;
}