有整數(已排序)存放在陣列中,輸入數,要求用折半查詢法找出該數在陣列中的下標值

2021-08-09 10:14:46 字數 3422 閱讀 3205

1樓:問明

#include

int main()

int a[15] = ;

int x, low, high, mid, n;

n = 15;

low = 0;

high = n - 1;

scanf("%d", &x);

while (low <= high){

mid = (low + high) / 2;

if (x > a[mid])

high = mid - 1;

else if (x < a[mid])

low = mid + 1;

else if (x == a[mid]){printf("%d is %dth number!\n", x, mid+1);

break;

if (x != a[mid])

printf("no match!\n");

return 0;

2樓:1997排長

//稍稍改了一點

#include

int main()

;int l=0,h=14,x,m;

printf("輸入數字:");

scanf("%d",&x);

while(la[m])

h=m;

else

l=m;

if ((l==h) && x!=a[h])}printf("是第%d個元素",m+1);

return 0;}

3樓:匿名使用者

//希望對你又幫助,這題的方法很多,只有自己多去思考。祝你有所進步!

#include

void main()

;int low=0,mid,high=15,b,i=-1;

printf("請輸入你要查詢到數: ");

scanf("%d",&b);

domid=(low+high)/2;

if(ba[mid])

low=mid;

else

i=mid;

}while(b!=a[mid]);

if(i==-1)

printf("該數不在陣列中\n");

else

printf("該數在陣列中的位置為%d",i+1);}

有15個已經排好序的數存放在一個陣列中,輸入一個數,要求用折半查詢法找出該數是陣列中第幾個元素的值 10

4樓:司馬刀劍

//希望對你又幫助,這題的方法很多,只有自己多去思考。祝你有所進步!

#include

void main()

;int low=0,mid,high=15,b,i=-1;

printf("請輸入你要查詢到數: ");

scanf("%d",&b);

domid=(low+high)/2;

if(ba[mid])

low=mid;

else

i=mid;

}while(b!=a[mid]);

if(i==-1)

printf("該數不在陣列中\n");

else

printf("該數在陣列中的位置為%d",i+1);}

程式設計:有15個數按由大到小順序存放在一個陣列中,輸入一個數,要求用折半查詢法找出該數是陣列中第幾個

5樓:凌亂心扉

include

int main()

;int num, low, high, mid;

<=high;)

}if (num!=n[mid]) printf("no match!\n");

return 0;

}printf()函式用法:

1、printf()函式格式化輸出函式,一般用於向標準輸出裝置按規定格式輸出資訊。

2、printf()函式的呼叫格式為:printf("《格式化字串》",《參量表》)。

3、格式輸出,它是c語言中產生格式化輸出的函式(在stdio.h中定義)。用於向終端(顯示器、控制檯等)輸出字元。

格式控制由要輸出的文字和資料格式說明組成。要輸出的的文字除了可以使用字母、數字、空格和一些數字符號以外,還可以使用一些轉義字元表示特殊的含義。

4、作用:在c語言中產生格式化輸出的函式(定義在stdio.h中),其向終端(顯示器、控制檯等)輸出字元。

6樓:

//稍稍改了一點

#include

int main()

;int l=0,h=14,x,m;

printf("輸入數字:");

scanf("%d",&x);

while(la[m])

h=m;

else

l=m;

if ((l==h) && x!=a[h])}printf("是第%d個元素",m+1);

return 0;}

7樓:可破解

#include

#define n 15

int main()

,i,l,h,m,n,f=1;

scanf("%d",&n);

l=0;

h=n-1;

while(l<=h)

8樓:

#include

void main()

;int m=0,m=14,n=19,k; /*由於有15個數,最大下標為m=15-1=14 */

scanf("%d",&n);

if (a[m]n)

printf("找不到這個數\n");

else

while((a[m]>n) && (a[m]找不到\n");break;}

if (a[k]>n) m=k; else m=k;

}return;}

9樓:匿名使用者

#include

void main()

if (a[i]!=t) puts("no such element!");//沒找到

else printf("%d is element %d of the array.\n",t,i);//找到了}

10樓:匿名使用者

這個不就是陣列嗎,a[15]

#include

main()

11樓:小小挖墳匠

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15].indexof(5) //4

C語言 輸入正整數按從大到小排序,用氣泡排序方法,書上沒有詳細過程,老師沒講,儘量用簡單的方法

include int main printf 您輸入的數從大到小排序為 for j 0 j 4 j if arr j include int main int a 4 i,j,t for i 0 i 4 i scanf d a i for i 0 i 3 i for j i 1 j 4 j if ...

已削皮的菠蘿如何存放

準備材料 菠蘿1個 鹽少許 菜刀 水果刀 方法一1 將削好皮的菠蘿切開。2 準備一張保鮮膜,將切開的菠蘿用保鮮膜包好3 接著把用保鮮膜包好的菠蘿放在冰箱裡儲存,不過儲存時間最好不要超過2天。保鮮膜將果肉與空氣隔絕開,可以防止菠蘿與空氣直接接觸導致變質。方法二1 準備一些食用鹽,將食用鹽倒入清水裡用筷...

用氣泡排序法對整數按照由小到大的順序進行排序

include int main i,j,t for j 9 j 0 j 例如這樣就行,當 du然你也可以不事先zhi定義十個數,而 dao是對輸入的十個數排回序,做小答小改變for i 0 i 10 i scanf d a i c語言 採用氣泡排序方法,對10個數按由小到大的的順序排序 如下 對1...