解題思路:對於這道題,小林拆分為3部分進行講解
第一部分,對有特點的數(每行開頭和結束的數都是1)進行賦值:
for(i=0;i<10;i++)//for迴圈 { array[i][i]=1;//給二維陣列的每一行的最後一個賦值為1 array[i][0]=1;//第二維陣列的每一行的開頭賦值為1 }
第二部分,給中間的數進行賦值:
for(i=2;i<10;i++)//外層迴圈限制行 { for(j=1;j<=i-1;j++)//內層迴圈限制列 { array[i][j]=array[i-1][j]+array[i-1][j-1];//給中間的數賦值 } }
第三部分,就是把上面賦值後的二維陣列,遍歷輸出即可;
for(i=0;i<10;i++)//外層迴圈限制行 { for(j=0;j<=i;j++)//內層迴圈限制列 { printf("%6d",array[i][j]);//輸出二維陣列,寬度為6 } printf("\n");//換行 }
原始碼演示:
#include<stdio.h>//標頭檔案 int main()//主函式入口 { int i,j;//定義整型變數 int array[10][10];//定義二維陣列 for(i=0;i<10;i++)//for迴圈 { array[i][i]=1;//給二維陣列的每一行的最後一個賦值為1 array[i][0]=1;//第二維陣列的每一行的開頭賦值為1 } for(i=2;i<10;i++)//外層迴圈限制行 { for(j=1;j<=i-1;j++)//內層迴圈限制列 { array[i][j]=array[i-1][j]+array[i-1][j-1];//給中間的數賦值 } } for(i=0;i<10;i++)//外層迴圈限制行 { for(j=0;j<=i;j++)//內層迴圈限制列 { printf("%6d",array[i][j]);//輸出二維陣列,寬度為6 } printf("\n");//換行 } return 0;//函式返回值為0 }
編譯執行結果如下: