c語言實戰專案2 用二分法在檔案中查取資料

2021-08-07 07:56:53 字數 990 閱讀 7228

目標:存在乙個檔案,裡面存有以 「學號 成績」形式儲存的資料。設計乙個程式,先對資料排序,然後用二分法查詢某個學號所對應的成績。

#include #include int readdata(int num,int score);//讀入文字檔案資料到陣列中

int search(int num,int count1,int key);//用二分法搜尋資料

void order(int num,int score,int count1);//給兩個有聯絡的陣列進行排序

int main()

order(num,score,count1);

printf("請輸入要查詢的學生學號:");

scanf("%d",&key);

index = search(num, count1, key); //在count個學生中查詢學號為key的學生對應的下標

if(index<0) //輸入的學號不存在時,index的值要求返回-1

printf("不存在學號為%d的同學\n",key);

else

printf("學號為%d的同學的成績是:%d\n", key, score[index]);

return 0;

}int readdata(int num,int score)

while(fgets(str,50,fpr)!=null)//將每一行的資料讀入陣列

fclose(fpr);

return i;

}int search(int num,int count1,int key)

while(num[i] != key)}}

}

使用軟體:codeblocks

執行結果:

C語言實戰 折半查詢(二分法)

搜尋過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則搜尋過程結束 如果者小於中某一特定元素大於或間元素,則在陣列大於或小於中間元素的那一半中查詢,而且跟開始一樣從中間元素開始比較。如果在某一步驟陣列為空,則代表找不到。這種搜尋演算法每一次比較都使搜尋範圍縮小一半 include incl...

二分法查詢C語言實現

二分法查詢c語言實現 while的條件裡,也可把k 0寫到迴圈體裡面去,用break語句跳出迴圈,break可以用在迴圈語句中,也可用在switch語句中。c語言實現 include using namespace std int main high,mid,k int m 想要查詢的值 short...

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...