C++的一道程序题关于二分搜寻法,希望大神们帮忙解答下,谢谢!

一开始先定义一个结构:
struct StudentRec
{
string Name
string ID;
double GPA;
}
然后读取一个文档students.txt,文档里的是这样的(姓名 ID GPA):
Zhang San M122568 3.86
Li Si M113478 3.25
Wang Wu M123456 3.36
要求输入ID后用二分搜寻法搜寻,如果找到则显示该学生的三条信息,没找到则显示“无效的ID”
本来ID是乱序的,后来降低难度就把数字排好了~,小弟菜鸟,感谢大神们的帮助!
希望能上下这题的代码~~感谢~~~

你用StudentRec这个结构是建立的数组吧
从小到大 你就可以分别设置min和max两个量 分别指向最小和最大
再将ID与(min+max)/2 比较 大 则讲min 重置与(min+max)/2
反正则将max重置为该数 等于 则返回 如果min>=max时则认为没有找到即可追问

ID里有个M怎么办?

追答

min和max只是数组索引值 不是ID
比较的时候是数组[min].ID与读入的ID 比较

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答