您好,歡迎進入深圳市穎特新科技有限公司官方網(wǎng)站!
在實際開發(fā)中,經(jīng)常需要查詢數(shù)組中的元素。例如,學(xué)校為每位同學(xué)分配了一個唯一的編號,現(xiàn)在有一個數(shù)組,保存了實驗班所有同學(xué)的編號信息,如果有家長想知道他的孩子是否進入了實驗班,只要提供孩子的編號就可以,如果編號和數(shù)組中的某個元素相等,就進入了實驗班,否則就沒進入。
不幸的是,C語言標(biāo)準(zhǔn)庫沒有提供與數(shù)組查詢相關(guān)的函數(shù),所以我們只能自己編寫代碼。
所謂無序數(shù)組,就是數(shù)組元素的排列沒有規(guī)律。無序數(shù)組元素查詢的思路也很簡單,就是用循環(huán)遍歷數(shù)組中的每個元素,把要查詢的值挨個比較一遍。請看下面的代碼:
運行結(jié)果:
Please input an integer: 100
100 is in the array, and it's subscript is 7.
或者
Please input an integer: 28
28 isn't in the array.
這段代碼的作用是讓用戶輸入一個數(shù)字,判斷該數(shù)字是否在數(shù)組中,如果在,就打印出下標(biāo)。
第10~15行代碼是關(guān)鍵,它會遍歷數(shù)組中的每個元素,和用戶輸入的數(shù)字進行比較,如果相等就獲取它的下標(biāo)并跳出循環(huán)。
注意:數(shù)組下標(biāo)的取值范圍是非負數(shù),當(dāng) subscript >= 0 時,該數(shù)字在數(shù)組中,當(dāng) subscript < 0 時,該數(shù)字不在數(shù)組中,所以在定義 subscript 變量時,必須將其初始化為一個負數(shù)。
查詢無序數(shù)組需要遍歷數(shù)組中的所有元素,而查詢有序數(shù)組只需要遍歷其中一部分元素。例如有一個長度為10的整型數(shù)組,它所包含的元素按照從小到大的順序(升序)排列,假設(shè)比較到第4個元素時發(fā)現(xiàn)它的值大于輸入的數(shù)字,那么剩下的5個元素就沒必要再比較了,肯定也大于輸入的數(shù)字,這樣就減少了循環(huán)的次數(shù),提高了執(zhí)行效率。
請看下面的代碼:
注意第11行代碼,只有當(dāng) nums[i] >= num 成立時才進行處理,否則繼續(xù)循環(huán)。nums[i] >= num 有兩重含義:
無論哪種情況,都沒有必要再繼續(xù)循環(huán)下去了,所以一旦滿足 nums[i] >= num,就應(yīng)該使用 break 跳出循環(huán)。
上一篇:C語言二維數(shù)組
下一篇:C語言for循環(huán)
掃碼關(guān)注我們
傳真:0755-82591176
郵箱:vicky@yingtexin.net
地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08