/*** Pascal Triangle 是用來暸解array很好的例子 ***/ #define MAXorder 14 #include int main() { int i,j,k; int n; int x[MAXorder+1][MAXorder+1]; printf("Generate 巴斯卡三角形, order=?"); scanf("%d", &n); while( !(3<=n && n<=MAXorder)) { printf(" order must be in 3..%d, order=?", MAXorder); scanf("%d", &n); } for(i=0; i<=n; i++){ x[i][0]=1; x[i][i] =1; for(j=1; j<= i-1; j++){ x[i][j]= x[i-1][j] + x[i-1][j-1]; } for(j =0; j<=i; j++){ printf("%5d",x[i][j]); }; printf("\n"); }; /* for i */ return 0; } /*** 此例印出的結果是靠左, 稍改一下就可像以下卡好看: ***/ /*********************** order=3 1 1 1 1 2 1 1 3 3 1 ********************************/ /*** 又此例用二維陣列來做 ***/ /*** 其實只要用一維陣列( int x[MAXorder+2] )就可以了 試著改用一維陣列寫看看 儘可能維持程式的架構 ******/ /* 其實如果用數學(排列組合), 則不必用array */