题目1069:查找学生信息

来源:互联网 发布:linux 文件夹用户权限 编辑:程序博客网 时间:2024/05/22 00:10


#include<iostream>#include<algorithm>#include<string>using namespace std; class Student{public:    string id;//学号    string name;//名字    string sex;//性别    int age;//年龄    bool operator <(const Student&A)const    {        return this->id < A.id;    }    Student findS(Student stu[],int n,string Sid); }; Student stu[1000];//存储学生信息int main(){    int N;//输入N个学生信息    int M;//搜索次数    string Sid;//要搜索的Sid    while(cin >> N)    {        //输入N个学生信息        for(int i=0; i<N; i++)        {            cin >> stu[i].id >> stu[i].name >>stu[i].sex >>stu[i].age;        }        //升序排序        sort(stu,stu+N);         cin >> M;        for(int j=0; j< M ;j++)        {            cin >>Sid;            int low = 0;            int high = N-1;            int mid = (low+high)/2;            int tag = 0;//标记是否找到            while(low <=high)            {                mid = (low+high)/2;                if(stu[mid].id ==Sid )                {                    tag= 1;                    break;                }                else if(stu[mid].id <Sid)                {                    low = mid+1;                }                else if(stu[mid].id >Sid)                {                    high = mid-1;                }            }            if(tag == 0) cout << "No Answer!" <<endl;            else            {                cout << stu[mid].id << " " <<stu[mid].name << " " <<stu[mid].sex << " "<<stu[mid].age <<endl;            }        }          }          return 0;}/**************************************************************    Problem: 1069    User: itswyy    Language: C++    Result: Accepted    Time:140 ms    Memory:1560 kb****************************************************************/


0 0
原创粉丝点击