對C語言數組的總結以及實例講解

來源:文萃谷 1.03W

數組(Array)是一系列相同類型的數據的集合,可以是一維的、二維的、多維的;最常用的是一維數組和二維數組,多維數組較少用到。

對C語言數組的總結以及實例講解

  一、對數組的總結

1) 數組的定義格式為:

type arrayName[length]

type 為數據類型,arrayName 為數組名,length 為數組長度。 需要注意的是:

數組長度 length 最好是整數或者常量表達式,例如 10、20*4 等,這樣在所有編譯器下都能運行通過;如果 length 中包含了變量,例如 n、4*m 等,在某些編譯器下就會報錯。

數組在內存中佔用一段連續的空間,數組名錶示的是這段內存空間的首地址

2) 訪問數組中某個元素的格式為:

arrayName[index]

index 為數組下標。注意 index 的值必須大於等於零,並且小於數組長度,否則會發生數組越界,出現意想不到的錯誤。

3) 可以對數組中的單個元素賦值,也可以整體賦值,例如:

// 對單個元素賦值

int a[3];

a[0] = 3;

a[1] = 100;

a[2] = 34;

// 整體賦值(不指明數組長度)

float b[] = { 23.3, 100.00, 10, 0.34 };

// 整體賦值(指明數組長度)

int m[10] = { 100, 30, 234 };

// 字符數組賦值

char str1[] = "";

// 將數組所有元素都初始化為0

int arr[10] = {0};

char str2[20] = {0};

  二、數組應用舉例

示例1】求一個整型數組中的'最大值和最小值。

#include

int main(){

int a[10] = {0}, max, min, i;

//從控制枱獲取用户輸入並賦值給數組元素

for(i=0; i<10; i++){

scanf("%d", &a[i]);

}

//假設a[0]是最大值也是最小值

max = a[0], min = a[0];

for(i=1; i<10; i++){

if(a[i] > max){

max = a[i];

}

if(a[i] < min){

min = a[i];

}

}

printf("The max is %d, The min is %dn", max, min);

return 0;

}

  運行結果:

2 123 45 100 575 240 799 710 10 90↙

The max is 799, The min is 2

  這段代碼有兩點需要説明:

1) 從控制枱獲取數組元素時,我們一次性輸入10個整數才按下回車鍵,而不是每輸入一個整數就按一次回車鍵,這正是利用了標準輸入緩衝區。

2) 要想求得數組中的最大值和最小值,就得循環比較數組中的所有元素,並設置兩個變量 max 和 min 來接收。以最大值為例,開始循環之前,先假設第0個元素是最大值(當然你也可以假設第1、2、3 個元素),然後用 max 和數組中剩餘的元素進行比較,如果某個元素的值比 max 大,就用這個元素的值替換 max 的值,等把所有元素遍歷完了,max 中就是最大值了。

  關於排序和查找:

學完了數組,有兩個重要的知識點要求大家掌握,那就是排序(Sort)和查找(Search),比如:

給你 10 個打亂順序的整數,要能夠按照從小到大或者從大到小的順序輸出;

給定一個字符串 str1,以及一個子串 str2,要能夠判斷 str2 是否在 str1 中。

熱門標籤