  天都亮了 .. 還有人在問怎沒教語法?    啥啦?   這是演習課ㄟ ..
       ㄟ .. 就跟你說過 .. 語法要用 TC 整合模式打 Control_F1 自己看啦!
                看不懂就要找小助教過來問 .. 問  .. 問 !

     學程式的捷徑就是多看例子, 看懂它 ==>  試著改它 ==>  研究結果 !

   這是第 00 版  Pascal Triangle 的接近完成的 示意碼 ( pseudocode)


    1 //pas00.c   --- by tsaiwn@csie.nctu.edu.tw
    2 //generate Pascal Triangle of order n
    3 ///  不懂如何做 Pascal Triangle 的可以到 http://wikipedia.net 查
    4 ///  或是看我給的投影片 (bb.nctu.edu.tw 和備用網址內都有放)
    5 #include <stdio.h>
    6 // 先用 #define 把可能會改的寫成符號常數是好習慣!
    7 #define MAX_N  19
    8 /// 以後若要改 array 大小則只要改上列的 19 即可
    9 int x[MAX_N][MAX_N];      // 這樣寫很好 :-)
   10 int getInteger( );   // 宣告會有個幫忙讀取整數的小弟(function)
   11   // 該 function 它會傳回一個整數, 我們不用傳任何參數給它!
   12 int main( ) {   // 每個程式都長這樣
   13   int i, j, k, n;     // 給我安排一些整數備用
   14   while(38==38) {        // in C++: while(true) {
   15       printf("n=? ");     // prompt the user
   16       n = getInteger( );   // 叫小弟(function) 去讀入一整數
   17       if(n < 0 ) break;         // 注意 n  < 0 表示不玩了 :-) 離開 while Loop
   18       // 最好也 check n 是否太大
   19       // n 階要從第 0 列到第 n 列
   20       for(i=0; i <= n; i++) {   /*記得 宣告/定義 x陣列 喔*/
   21           x[i][0] =1;   // 最左邊放 1  (就是第 i 列的第 0 個)
   22           // 最右邊放 1  (就是第 i 列的第 i 個)
   23            // 接下來用 for Loop 處理中間各元素
   24           for(j=1; j<= i-1; j++)  {    // 第 i 列的中間每一格都要填
   25               //x[i][j]=  正上方元素  +  左上角元素 ;
   26               //    如何表示 x[i][j] 的正上方?   左上角?
   27           }  // for(j
   28           // 整列好了, 再來當然就可以用 for Loop 把整列印出來
   29           // 每列印之前可以先印一些空格就可印成正三角形
   30           // 用 for Loop 把 第0個到第 i 個整列印出
   31           for(j =0; j<= i; j++) {     // Loop 的控制變數 j 用過可重複使用
   32               printf("%6d", x[i][j]);      // 每個元素印成 6 格的整數
   33           };   
   34           printf("\n");         // 當然要記得印出換新列(new Line)      
   35       };  /* for i  從 第0列 到 第 n 列 */  
   36       // 如果你要全部填完再用兩層 for Loop 印出也可以   
   37    } // while
   38    printf("\nBye bye.\n");  
   39    return 0;  // 傳回給系統  0 表示正常結束
   40 }  // main
   41 ////////////////////////////////////////////////////////////////////////////////////////////   
   42 /// /// // 必要時可以把以下小弟 (function) 改得好一點:-)
   43 int getInteger( ) {   // 簡易版的 getInteger
   44      int ans = -1;    // 預設 -1 是個好習慣
   45      scanf("%d", &ans);    // 若亂打可能會使程式當掉!
   46      return ans;
   47 }      
