1. 程式人生 > 其它 >C語言採用折半查詢法在10個有序數中尋找某個數

C語言採用折半查詢法在10個有序數中尋找某個數

技術標籤:C語言程式設計c語言演算法

【題目】C語言採用折半查詢法在10個有序數中尋找某個數,如果找到,輸出其所在陣列中下標的位置,否則,輸出沒找到。

【原始碼】

#include <stdio.h>
int main(void)
{
    int  up=10, low=1, mid, found=0, find;
    int  a[10]= {1, 5, 6, 9, 11, 17, 25, 34, 38, 41};
    scanf("%d", &find);
    printf("\n");
    while (up >=
low || !found) { mid = (up + low) / 2; if(a[mid] == find) { found = 1; break; } else if(a[mid] > find) { if(a[mid] > find && a[mid+1] < find) { found = 0; break
; } up = mid - 1; } else { if(a[mid] < find && a[mid + 1] > find) { found = 0; break; } low = mid + 1; } if(mid <=0 || mid >= 9) {
found = 0; break; } } if(found) printf("found number is %dth.\n", mid); else printf("no found.\n"); return 0; }

【執行結果】
在這裡插入圖片描述