临近期末了,Yhw同学为了期末考试不挂科,最近疯狂的往图书馆跑。Yhw为了避免花太多的时间在找书上面,便想设计一个找书的程序,可以帮助他快速的找出想要的书。
在一排书架上有n(n<=10)本书,每本书都有对应的书名、编号(从左往右编号依次递增)和摆放的位置(最左边为第一本,然后是第二本……以此类推),输入想找的书的编号,程序能输出书的位置。
#include<iostream> #include<cstdio> using namespace std; struct BOOK { char name[20]; int bianHao; int weiZhi; }book[20]; int main()//对分查找 { int n,i,j,middle,m,flag=0; cin>>n; for(i=0;i<n;i++) { cin>>book[i].name >>book[i].bianHao >>book[i].weiZhi ;//读入数据 } cin>>m; i=0; j=____(1)____; while(i<=j) { middle=(i+j)/2;//先找中间的书是否符合要求 if(_____(2)_____) { flag=1; break; } else if(book[middle].bianHao>m) j=_____(3)____;//查找区间前移 else i=middle+1;//查找区间后移 } if(____(4)____) cout<<book[middle].name <<' '<<book[middle].bianHao <<' '<<book[middle].weiZhi ; else cout<<"Can Not Found"; return 0; }