把楊輝三角“搬”到C語言,你可以用這招搞定!

百度裡搜索楊輝三角,發現這個數學問題還是挺多關注量的,說明這個楊輝三角還是非常有熱度,那為什麼會這樣呢?

:重新定義和思考這個問題,你會發現,因為數學中這個楊輝三角,是非常經典的,值得品味的。

把楊輝三角“搬”到C語言,你可以用這招搞定!

數學中神奇的楊輝三角

數學中這個楊輝三角呢,長的像下圖這樣:

把楊輝三角“搬”到C語言,你可以用這招搞定!

楊輝三角

網上搜索還是發現挺多研究者會去用C語言編寫這個楊輝三角,因為它總是經典,學習C語言過程中總是會遇到,但是,我寫的還是別具特色的,不信你看:


編寫楊輝三角

演示視頻如下:


#include<stdio.h>

/*引用預處理命令,預處理包含stdio.h的頭文件*/

main()

/*定義一個主函數,所有程序在執行前都開始於主函數,且結束於主函數*/

{

int i,j,a[11][11];

/*定義整型變量i,j,包含11行11列的整型數組a[11][11];其中,前一個[11]表示11行,後一個[11]表示11列*/

for(i=1;i<11;i++)

/*對i進行在1到11之間循環累加,循環範圍為1~10*/

{

a[i][i]=1;

/*這裡指行數和列數相同的那個元素,即對角線的那個元素賦值為1*/

a[i][1]=1;

/*這裡指第i和第一列的那個元素,即每行第一列的那個元素賦值為1*/

}

for(i=3;i<11;i++)

/*從第3行到第10行進行循環累加,循環範圍為3~10*/

for(j=2;j<=i-1;j++)

/*從第2列到第i-1列進行循環累加,循環範圍為2~i-1;這裡的含義即指從第2列到該行行數減一為止,例如:第2行第1列,第3行第2列,......*/

a[i][j]=a[i-1][j-1]+a[i-1][j];

/*第i行第j列的那個值等於第i-1行第j-1列的值加上第i-1行第j列的值;例如:第3行第2列的值等於第2行第1列的值與第2行第2列的值......*/

for(i=1;i<=11;i++)

/*從第1行到第11行進行循環累加,循環範圍為1~11*/

{

for(j=1;j<=i;j++)

/*從第1列到第i列進行循環累加,循環範圍為1~i;這裡的含義即指有幾行循環就有幾列循環*/

printf("%4d",a[i][j]);

/*通過上面兩次for循環將二維數組a中的元素輸出;這裡的%4d指的是每一個整型數的寬度為4,例如,得出的數如果是1,則是前三個空格加上數字1,得出的數如果是11,則是前2個空格加上數字11......*/

printf("\\n");

/*每輸完一行進行一次換行*/

}

return 0;

/*返回空值,0指空,沒有,即將0返回給主函數main,其目的是告訴給main函數此程序執行完了*/

}

如果大家有問題,歡迎大家留言討論,我都會一一解答呦,歡迎關注 ,給你不一樣的自己!


分享到:


相關文章: