數組數組
在學數組以前,有必要把前面的知識複習一遍,固然個人複習,僅僅只是提一下,而對於你,則應該認真的看一下前面的知識點,不懂能夠百度,哈哈。函數
前面咱們大體學了 1.定義變量,2.數據的輸入與輸出,3.判斷語句if...else if ...else ,4.循環語句 while,do while,for 三種循環方式。spa
然而上面面講的都是廢話。。。下面開始講數組。3d
數組是什麼?數組是構造數據類型。很難懂嗎?說直白一點,數組就是不少個相同的數據類型的元素彙集在一塊兒以後的結果。code
固然,使用數組的時候,一樣須要定義它。還記得怎麼定義一個變量嗎? 如今,請定義一個整型變量a。若是你認真複習過前面的類容,相信能夠很容易寫出來 int a; 這樣的語句。那麼,我如今問,如何定義1000個整型變量,難道要取一千個變量名,諸如int a,b,c,d,e......;這樣嗎?那也太麻煩了吧。因此就出現了數組這一律念。數組的定義很方便,以下blog
#include<stdio.h> int main() {//定義了有一千個空間的整型變量 //此時在計算機中會開闢1000個整型大小的內存空間 //每一個空間均可以表示一個整型變量 int a[1000]; }
上面的程序中就定義了一個大小爲1000的整型數組。固然數組的出現就是爲了輸入和存儲的方便。運用數組通常都與上一篇文章的循環相結合。內存
1.從鍵盤中第一行輸入一個數字a,第二行輸入a個數字,按回車,而後出現每一個數字加一的結果。字符串
代碼:string
#include<stdio.h> int main() { //爲防止出現n的值過大的狀況,通常吧數組開的比較大 int n,i,a[100000]; scanf("%d",&n); //從鍵盤中輸入一個數 for(int i=0;i<n;i++) {//經過循環從鍵盤中輸入n個數 scanf("%d",&a[i]); //i表明着數組的下標,數組下標從0開始 } for(int i=0;i<n;i++) { a[i]+=1;//經過循環使數組中的每一個數都加1 //輸出結果 printf("%d ",a[i]); } return 0; }
運行結果io
固然用while循環也能作到如上操做,本身能夠試試,此處就再也不說明了。真正值得關注的是,1.數組必須提早說明開闢了多少的空間,而且要開的夠用。例如上題,若是第一行輸入的是n是1001
,很明顯,我只開了1000個空間,只能存放1000個數,這種現象稱爲數組越界,程序雖然能夠運行,不會報錯,可是是錯誤的。2.訪問數組存放的第一個數是0,即a[0]表明數組存放的第一個數,a[n-1]表明數組存放的最後一個數。3.數組空間是邏輯地址是連續的,便可以經過0~n-1來訪問數組中的全部的元素。
2.觀察這段數字 1,1,2,3,5,8,13,21... 發現規律,如今從鍵盤中輸入一個小於50的數m,按下回車,輸出數列中的第m個數。
能夠看出,這個數的前兩數的和等於這個數。即 a(n)=a(n-1)+a(n-2) n>=3
規律發現了,那麼用程序如何實現它:
#include<stdio.h> int main() { /*用數組來存放這個數列, 由於已知前兩個數,就能知道下一個數 ,因此能夠用遞推的思想來求解*/ int n,i,a[50]; //數組的下標從0開始, a[0]=1; a[1]=1; for(i=2;i<=50;i++) { //遞推式 a[i]=a[i-1]+a[i-2]; } scanf("%d",&n); /*因爲數組下標從0開始,a[0]即數列的第一個數 因此第n個數是a[n-1].*/ printf("%d",a[n-1]); }
運行結果
3.不止語句是能夠嵌套使用,數組一樣也能夠,好比若是有兩個數組a[100],b[100]。若是b數組是一個整型數組,徹底能夠用b數組裏面的某個數數來表示a數組的下標,例如a[b[i]]; b[i]做爲了a數組的下標.
不過數組用的比較多的不僅是存數字,它還能夠存字符,即字符數組,定義一個字符數組:char a[100];每個空間能夠存放一個字符,例如,'a','b','.'.'?','8'......等。此處須要區分字符數組與字符串的區別。字符串通常都有一個結束符‘\0’,放在存放的字符末尾.表示字符串的結束.例如我要存放"good,time",一共有九個字符,在數組中須要開闢10個空間,存放狀況爲'g','o','o','d',',','t','i','m','e','\0'.最後一個爲結束符.而且對於字符數組的操做c定義了許多的庫函數,有些例如複製syrcpy,求長度strlen,比較strcmp函數都是很經常使用的,須要掌握它。
例題:從鍵盤中輸入一串字符串,無空格,把它倒着輸出出來
代碼:
#include<stdio.h> //關於字符,庫函數因此須要的頭文件 #include<string.h> int main() { int i,l; char a[10000]; //輸入字符串 scanf("%s",a); //庫函數求字符串的長度 l=strlen(a); //倒着輸出 for(i=l-1;i>=0;i--) printf("%c",a[i]); }
因爲只想着能讓你們對c語言有一個簡單的總體的認識,而且限於我的水平,因此都寫的是一些比較基礎的東西。如想了解的更深刻須要本身去下功夫。