C語言筆記 利用二維陣列輸出楊輝三角形

2021-08-30 11:14:59 字數 1079 閱讀 1577

楊輝三角形又稱帕斯卡三角形,其餘的話就不多說,先看下面的三角形:

1       1

1        2        1

1          3       3          1

1           4        6         4          1

1           5          10       10       5           1

這裡我就只列出前面幾行,從三角形中我們可以明顯地看出規律:a[i][j]=a[i-1][j-1]+a[i-1][j+1],乙個數是上一層改數的左邊加右邊,比如:2=1+1,3=1+2。在網上也有很多關於這個演算法的實現,這次我以自己的理解,利用二維陣列輸出楊輝三角形,並且我認為二維陣列輸出方式更容易理解。但需要注意的是,陣列在記憶體中是線性排列的。

分析:把輸出為空格的初始化為0,需要注意陣列的列數問題,因為最後一行的首個1也需要符合a[i][j]=a[i-1][j-1]+a[i-1][j+1],所以在定義陣列的列數時,需要再額外多兩行,即當輸出6行時,最後一層是0 1 0 5 0 10  0 10 0 5 0 1 0,所以列數與行數關係是:

c=r*2+1;所以運算時,列數要從第二列開始,預留一列給最後行的運算。

#include#include#define r 6//行

#define c ((r)*2+1) //列

#define first (c)/2//首行的1列下標

void main()

;//開始全部初始化為0

yanghui[0][first]=1;//首行的1初始化

for(int i=1;i6行輸出效果:

10行輸出:

最後內心的話:堅持寫部落格真的不容易,最近就因為專業上的事,停更了很久,即將又過去乙個月,希望自己還能繼續堅持。

C語言二維陣列

int main int argc,const char argv int array 5 建立乙個二維陣列 型別修飾符陣列名 包含幾個小陣列 每個小陣列有多少個元素 初始值如何寫?int array 3 4 一維陣列可以省略元素個數,二維陣列只能省略第一位 第乙個 3 可以不寫 第二種初始值寫法 ...

C語言 二維陣列

c語言之二維陣列 1 定義的基本格式 int a 1 2 1代表一行,2代表二列 難點 二維陣列的行列下標。字串結束標誌的實用。2 一維陣列和二維陣列的聯絡。一維陣列如同千層面一樣一層一層的,而二維陣列,只是給千層面切了幾刀 3 int a 2 3 a 0 0 是1,a 0 1 是2,a 0 2 是...

C語言 二維陣列

1 陣列名稱不可以代表儲存區 2 陣列名稱可以代表陣列裡第乙個儲存區的位址 3 可以對陣列名稱進行sizeof計算,結果是陣列裡所有儲存區的總大小 4 c99規範裡可以使用變長陣列,宣告變長陣列的時候可以用變數表示陣列裡的儲存區個數 5 某一次程式執行過程中變長陣列裡儲存區個數不會變化 6 如果程式...