c語言是一種十分適合解決數學問題的程式語言。其中陣列對於解決遞推問題有十分優秀的作用。
陣列:陣列就是變數的集合,是一種指定義變數的方法。
一維陣列:
定義: 型別 陣列[數量];//裡的整數表示變數的數量
int arr[5]《=》int n1,n2,n3,n4,n5;
陣列的變數,值也是不確定的,為了安全需要初始化。
使用:陣列名[編號];//[ ]裡的整數表示的是編號
arr[0],arr[1],arr[2],arr[3],arr[4];
編號也叫下標,範圍:0~數量-1;
遍歷:配合迴圈語句,使用迴圈變數當做陣列的編號。
初始化: 型別 陣列[變數]=;
1.如果初始化資料不夠,編譯器會自動補零
2.如果初始化資料過多,編譯器會丟棄多餘的資料並給警告。
3.對陣列初始化時,陣列的數量可以省略,編譯器會統計初始化資料的個數然後再告訴陣列。
二維陣列:把變數排成乙個方陣
定義:型別 陣列名[行數][列數]
int arr[3][4]
使用:陣列名[行編號][列編號]
編號從零開始。
a[0][0]a[0][1]
a[1][0]a[1][1]
遍歷:配合雙層for,外層負責遍歷行,內層負責遍歷列。
初始化:陣列名[行編號][列編號]={{v0,v1,v2},{v1,v2,v3},{v1,v2,v3}};
以下我用幾個例子表現c語言陣列在數學遞推問題方面的應用。
斐波那契數列(fibonacci sequence),又稱**分割數列、因數學家列昂納多·斐波那契(leonardoda fibonacci)以兔子繁殖為例子而引入,故又稱為「兔子數列」,指的是這樣乙個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列以如下被以遞推的方法定義:f(1)=1,f(2)=1, f(n)=f(n-1)+f(n-2)(n>=3,n∈n*) 。
由此可得,當設陣列a[0]=0,a[1]=1時,定義a[n+1]=a[n-1]+a[n]為規則,則可解決本問題。
**如下:
#include
intmain()
for(
int i=
1;i<=n+
1;i++
)}
執行結果如下:
楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡(1623----1662)是在2023年發現這一規律的,比楊輝要遲393年,比賈憲遲600年。楊輝三角是中國古代數學的傑出研究成果之一,它把二項式係數圖形化,把組合數內在的一些代數性質直觀地從圖形中體現出來,是一種離散型的數與形的結合。
由此規律可得,當設無關陣列元素的值都為0時,楊輝三角形的a[n][n]=a[n-1][n]+a[n-1][n-1]。
則**如下:
#include
intmain()
}a[0]
[1]=
1;for(i=
1;ifor(i=
0;i)printf
("\n");
}}
C語言的一些簡單操作
命令的基本格式 命令名稱 選項 引數 1.基本操作命令 ls 列出某個目錄下的所有檔案 list ls adfhilr h human readable i inode i節點編號,是系統用來區分檔案的標誌 r recursive 遞迴 cd 切換目錄 change directory cd 直接切...
C語言陣列的一些問題
我們都知道,陣列名可以當成乙個指標,同樣的函式名也可以當成乙個函式指標,指向函式的入口位址。現在有乙個問題,陣列名這個指標指向的是什麼呢?如果對陣列名再取位址,得到的又是什麼呢?我們來驗證這兩個問題。輸入以下 include stdio.h int main int p 3 a printf d,d...
c語言字元陣列一些啟示
最近博主在學習 linux系統程式設計 所以想記下來學習的一些心得,與大家分享,也備以後回顧只用。第一天,就從我在今天學習過程遇到的問題寫起,博主今天在學習標準io庫,遇到乙個問題,關於字元指標的問題,如下 1 include2 include3 4 int main 5 15 s 0 16 pri...