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