题目1069:查找学生信息


#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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值