有n個整數按由大到小順序存放在乙個陣列中,輸入乙個數,要求用折半查詢法找出該數是陣列中第幾個元素的值
1樓:網友
回答題目描述:有15個數字由大到小的順序存放在乙個陣列中,輸入乙個數,要求用折半查詢法找出該數是陣列中第幾個元素的值。如果該數不在陣列中,則列印出「無此數」。
演算法思路:從一維陣列中查詢乙個數最簡單的方法就是從第乙個開始順序查詢,直到找到為止,但是這種方法效率很低,如果有很多個資料就需要查詢很多次。折半查詢是效率比較高的一種查詢方法。
基本思路如下:假如有已經排好序的9個數:1,3,5,7,9,11,13,15,17。
如果想查詢3的位置,可先找出中間的數,也叫是num,將3與其比較,發現num>3,顯然3應當在num之前,則查詢範圍縮小一半,迴圈這樣找下去。在程式中先判斷查詢數是否在陣列範圍內,如果不在直接輸出差找不到。如果在陣列範圍內,設定乙個first標記和乙個last標記,每輪比較讓mid=(first+last)/2,,也就是範圍內中間位置,如果查詢數等於這個位置的數則返回這個位置,如果比中間的數要大,則查詢範圍縮小到前面,則讓last=mid-1,繼續迴圈;如果比中間的數要小,則查詢範圍縮小到後面,則讓first=mid+1,繼續迴圈。
直到結束。如果沒有找到則返回-1。
2樓:網友
好高深,須問專業人士。
輸入 n個整數,將它們存入陣列 a 中,再輸入乙個整數 x,然後在陣列 a 中查詢第x個數?
3樓:大熊人啥也沒幹
這個很基礎啊,迴圈輸入n個整數,然後遍歷陣列,if(x==i+1)就好了啊。
4樓:聽不清啊
輸入 n個整數,將它們存入陣列 a 中,再輸入乙個整數 x,然後在陣列 a 中查詢第x個數。
這隻要直接從資料中訪問指定的這個元素就可以了,根本是用不著查詢的。
輸入十個整數,儲存在一維陣列a[10]中,找出其中的最小值,並將最小值元素和陣列第乙個元素交換。輸出結果中每個數字佔三列的寬度。
5樓:
摘要。您好,親,很高興為您解答:輸入十個整數,儲存在一維陣列a[10]中,找出其中的最小值,並將最小值元素和陣列第乙個元素交換。
輸出結果中每個數字佔三列的寬度。您好,#include int main();int i,min=a[0],row,t; for(i=0;i<10;i++)int i,min=a[0],row,t; for(i=0;i<10;i++)printf("max:%d min:
d",max,min);return 0;}
不要最大值。
只要找出其中的最小值並和第乙個互換就好了。
#includeint main( )printf("max:%d min:%d",max,min);return 0;}
) 對一維陣列輸入10個整數。 2) 從鍵盤輸入乙個數(主函式中輸入),查詢這個數在這10個數中
6樓:
摘要。c語言:從鍵盤為一維整型陣列輸入10個整數,呼叫fun函式找出其中最小的數,並在main函式中輸出。
在主函式中分別呼叫這六個函式,並且每次呼叫函式後輸出相應的結果。
對一維陣列輸入10個整數。
2) 從鍵盤輸入乙個數(主函式中輸入),查詢這個數在這10個數中的位置。
3)求這10個數的最大值和最小值。
4) 求這10個數的平均值。
5) 將這10個數逆序存放並輸出。
6) 用冒泡法對10個數公升序排序。
對一維陣列輸入10個整數。
在主函式中分別呼叫這六個函式,並且每次呼叫函式後輸出相應的結果。
6) 用冒泡法對10個數公升序排序。
5) 將這10個數逆序存放並輸出。
4) 求這10個數的平均值。
3)求這10個數的最大值和最小值。
2) 從鍵盤輸入乙個數(主函式中輸入),查詢這個數在這10個數中的位置。
對一維陣列輸入10個整數。
在主函式中分別呼叫這六個函式,並且每次呼叫函式後輸出相應的結果。
6) 用冒泡法對10個數公升序排序。
5) 將這10個數逆序存放並輸出。
4) 求這10個數的平均值。
3)求這10個數的最大值和最小值。
2) 從鍵盤輸入乙個數(主函式中輸入),查詢這個數在這10個數中的位置。
對一維陣列輸入10個整數。
c語言問題 通過鍵盤將10個整數輸入到一維陣列中,並把該陣列中所有偶數放另外乙個陣列中
7樓:信必鑫服務平臺
1、首先定義乙個字串:$str = apple';其次定義乙個陣列:$arr = array('apple', orange', strawberry')。
2、加入函式:in_array(),判斷$arr中,是否存在$str。如果存在則在螢幕上列印出:$str的值;如果不存在,則在螢幕上列印:找不到。
3、將編寫的php檔案儲存,並在瀏覽器執行,觀察效果,成功返回了$str的值,表明$str存在於$arr陣列中。
<>5、儲存修改之後的php檔案,再次在瀏覽器執行檔案,此次,因為陣列中不存在$str的值,所以螢幕上列印出:找不到。
輸入正整數n(1n 10),再輸入n個整數,把這些數逆序存放後輸出,用陣列知識做,咋搞啊
include int main for i 0 i n i printf d a i return 0 c語言程式 include define max 100 int main printf 資料逆序後 for i 0 i 執行測試 include int main 輸入一個正整數n 1 inc...
輸入整數,判斷該數是否為降序,輸入一個整數,判斷該數是否為降序
迴圈對比,兩個數減一下,如果其中一個小於0,則不為降序 integer a new integer 5 a 0 9 a 1 8 a 2 6 a 3 7 a 4 5 for int i 0 i0 需要判斷這個數是不是純數字麼?用氣泡排序法對輸入的20個數進行降序並存入陣列中,輸入一個數,檢視是否存在 ...
輸入正整數n1《n10,再輸入n個整數,輸出平均
include void main for i 0 i 10 i else if count i avg sum 1.0 count printf 這 d個數的平均數保留兩位小數應該是 2f count,avg c語言程式填空 輸入一個正整數 n 1 補充的內容加在註釋之間 輸入一個正整數 n 1個...