2019315 输入学生信息,查询特定学号学生信息

#include<iostream>
#include <algorithm>

using namespace std;

struct st
{
    int no;
    char name[20];
    int age;
    char sex[10];
    bool operator < (const st &a)const
    {
        return no<a.no;
    }
}stu[100];

void show(st &d)
{
    cout<<d.no<<" "<<d.name<<" "<<d.age<<" "<<d.sex;
};



int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    cin>>stu[i].no>>stu[i].name>>stu[i].age>>stu[i].sex;

    sort(stu,stu+n);

    int b[100],x,flag=-1;//如果没有,则输出不存在。

    int base,top,mid;



    cin>>x;
    for(int i=0;i<x;i++)
        cin>>b[i];//输入学号


    for(int i=0;i<x;i++)
    {
       base=0;
       top=n-1;

    while(base<=top)
    {
        mid=(base+top)/2;
        if(b[i]>stu[mid].no) base=mid+1;
        else if(b[i]<stu[mid].no) top=mid-1;
        else if(b[i]==stu[mid].no) {flag=mid;break;}

    }
    if(flag==-1) cout<<"no noe in ti.";
    else show(stu[flag]);


    cout<<endl;

    }












    return 0;
}

 

相关文章: