記錄打印楊輝三角-C語言
#include<stdio.h>
int main(){
int i,j,k;
//輸出十行,ns表示上一行的數據,nx表示當前行的數據,ts表示計算當前行時的臨時數據
int ns[11]={0},nx[11]={0},ts[11]={0};
//控制行數:0~9共十行
for (i = 0; i < 10; i++){
//第一行
if (i == 0) printf("%d ", 1);
//第二行
if (i == 1){
printf("%d %d", 1,1);
ns[0]=1;ns[1]=1;
}
//i=2時,即從第三行開始
if(i>1){
for (j = 0; j <= i; j++){
//第一個后最后一個數總是為1
if(!j || j == i)
nx[j] = 1;
else
nx[j] = ns[j-1]+ns[j];//第j個數等于它肩上的兩個數之和
printf("%d ", nx[j]);
ts[j] = nx[j];//臨時數組記錄當前行的值,等下把它們放到ns中去,給下一次循環使用
}
//將ts的值放到ns中
for(k = 0;k<=i;k++){
if(!k || k==i) ns[k]=1;
else ns[k] = ts[k];
}
}
//沒輸出一行后換行
printf("\n");
}
return 0;
}

浙公網安備 33010602011771號