C語言陣列元素的查詢

2021-10-03 03:32:57 字數 1487 閱讀 9925

在日常的開發過程中,我們經常需要查詢陣列中的元素,這就需要我們使用陣列元素查詢的方法來進行查詢。

無序陣列,就是陣列元素的排列沒有規律。無序陣列元素查詢的思路也很簡單,就是用迴圈遍歷陣列中的每個元素,把要查詢的值挨個比較一遍。請看下面的**:

#include 

intmain()

;int i, num, thisindex =-1

;printf

("input an integer: ");

scanf

("%d"

,&num)

;for

(i=0

; i<

10; i++)}

if(thisindex <0)

else

return0;

}

執行結果:

input an integer:

100↙

100 is in the array, it's index is 7.

或者

input an integer:

5↙5 isn't in the array.

輸入乙個數字,判斷該數字是否在陣列中,如果在,就列印出下標。

第10~15行**是關鍵,它會遍歷陣列中的每個元素,和使用者輸入的數字進行比較,如果相等就獲取它的下標並跳出迴圈。

注意:陣列下標的取值範圍是非負數,當 thisindex >= 0 時,該數字在陣列中,當 thisindex < 0 時,該數字不在陣列中,所以在定義 thisindex 變數時,必須將其初始化為乙個負數。

查詢無序陣列需要遍歷陣列中的所有元素,而查詢有序陣列只需要遍歷其中一部分元素。例如有乙個長度為 10 的整型陣列,它所包含的元素按照從小到大的順序(公升序)排列,假設比較到第 4 個元素時發現它的值大於輸入的數字,那麼剩下的 5 個元素就沒必要再比較了,肯定也大於輸入的數字,這樣就減少了迴圈的次數,提高了執行效率。

請看下面的**:

#include 

intmain()

;int i, num, thisindex =-1

;printf

("input an integer: ");

scanf

("%d"

,&num)

;for

(i=0

; i<

10; i++

)else

if(nums[i]

> num)}if

(thisindex <0)

else

return0;

}

與前面的**相比,這段**的改動很小,只增加了乙個判斷語句,也就是 12~14 行。因為陣列元素是公升序排列的,所以當 nums[i] > num 時,i 後邊的元素也都大於 num 了,num 肯定不在陣列中了,就沒有必要再繼續比較了,終止迴圈即可。

c語言 查詢陣列元素

題目描述 輸入n個整數構成乙個陣列,在這個陣列中查詢x是否存在,如果存在,刪除x,並輸出刪除元素後的陣列。如果不存在,輸出 not found 定義乙個查詢函式find 在陣列a中查詢x,若找不到函式返回 1,若找到返回x的下標,函式原型如下 int find int a,int n,int x 然...

C語言陣列元素的查詢

順序查詢也叫線性查詢,是一種簡單的查詢演算法,其實現方法是從序列的起始元素開始,逐個將序列中的元素與所要查詢的元素進行比較,如果序列中有元素與所要查詢的元素相等,那麼查詢成功,如果查詢到序列的最後乙個元素都不存在乙個元素與所要查詢的元素值相等,那麼表明查詢失敗。線性查詢陣列元素 param int ...

c 陣列查詢元素

包括通過查詢陣列中某個元素的下標 第一次出現時的下標,最後一次出現時的下標 查詢某個陣列中是否有某元素。using system using system.collections.generic using system.linq using system.text using system.thr...