zoukankan      html  css  js  c++  java
  • Algorithm Design Everyday——2.查找学生信息

      1 /**
      2 题目描述: 
      3 输入N个学生的信息,然后进行查询。
      4 
      5 输入:
      6 输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息格式如下: 
      7 01 李江 男 21 
      8 02 刘唐 男 23 
      9 03 张军 男 19 
     10 04 王娜 女 19 
     11 然后输入一个M(M<=10000),接下来会有 M 行,代表 M 次查询,每行输入 一个学号,格式如下: 
     12 02 
     13 03 
     14 01 
     15 04
     16 
     17 输出:
     18 输出M行,每行包括一个对应于查询的学生的信息。 如果没有对应的学生信息,则输出“No Answer!”
     19 
     20 样例输入:
     21 4
     22 01 李江 男 21 
     23 02 刘唐 男 23 
     24 03 张军 男 19 
     25 04 王娜 女 19 
     26 5
     27 02 
     28 03 
     29 01 
     30 04 
     31 03
     32 样例输出: 
     33 02 刘唐 男 23 
     34 03 张军 男 19 
     35 01 李江 男 21 
     36 04 王娜 女 19
     37 03 张军 男 19
     38 */
     39 #include<cstdio>
     40 #include<algorithm>
     41 #include<cstring>
     42 #include<cstdlib>
     43 using namespace std;
     44 
     45 struct Student
     46 {
     47     char no[100];
     48     char name[100];
     49     char sex[5];
     50     int age;
     51 
     52     bool operator < (const Student &A) const
     53     {
     54         return strcmp(no, A.no) < 0;
     55     }
     56 }buf[1000];
     57 
     58 int main()
     59 {
     60     int n;
     61     while(scanf_s("%d", &n, 1) != EOF)
     62     {
     63         for(int i = 0 ; i < n ; i ++)
     64             scanf_s("%s%s%s%d", buf[i].no, _countof(buf[i].no), buf[i].name, _countof(buf[i].name), 
     65             buf[i].sex, _countof(buf[i].sex), &buf[i].age, 1);
     66 
     67         sort(buf, buf + n);
     68 
     69         int t;
     70         scanf_s("%d", &t, 1);
     71         while(t -- != 0)
     72         {
     73             int ans = -1;
     74             char x[30];
     75             scanf_s("%s", x, _countof(x));
     76 
     77             int top = n - 1, base = 0;
     78             while(top >= base)
     79             {
     80                 int mid = (top + base) / 2;
     81                 int tmp = strcmp(buf[mid].no, x);
     82                 if(tmp == 0)
     83                 {
     84                     ans = mid;
     85                     break;
     86                 }
     87                 else if(tmp > 0)
     88                     top = mid - 1;
     89                 else
     90                     base = mid + 1;
     91             }
     92             if(ans == -1)
     93                 printf_s("No answer!
    ");
     94             else
     95                 printf_s("%s %s %s %d
    ", buf[ans].no, buf[ans].name, buf[ans].sex, buf[ans].age);
     96         }
     97     }
     98 
     99     return 0;
    100 }
  • 相关阅读:
    nfc相关
    MI卡UID
    VC黑客编程实战视频-破解网吧电影下载
    在WebLogic服务器下 使用Apache Web 服务插件
    C++11FAQ 中文版带完整书签141页PDF
    nginx manager
    JAVA插入数据到MySql少了8小时
    Linux 学习记录
    mssql 用户只能查看授权的数据库
    Mac配置JAVA_HOME
  • 原文地址:https://www.cnblogs.com/yiyi-xuechen/p/3452312.html
Copyright © 2011-2022 走看看