Skip to content

Latest commit

 

History

History
107 lines (78 loc) · 1.84 KB

1935.md

File metadata and controls

107 lines (78 loc) · 1.84 KB

1935题目描述:查找学生信息

输入N个学生的信息,然后进行查询。

  • 输入 输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息格式如下: 01 李江 男 21 02 刘唐 男 23 03 张军 男 19 04 王娜 女 19 然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下: 02 03 01 04

  • 输出 输出M行,每行包括一个对应于查询的学生的信息。 如果没有对应的学生信息,则输出“No Answer!”

-样例输入

5

001 张三 男 19

002 李四 男 20

003 王五 男 18

004 赵六 女 17

005 刘七 女 21

7

003

002

005

004

003

001

006

  • 样例输出

003 王五 男 18

002 李四 男 20

005 刘七 女 21

004 赵六 女 17

003 王五 男 18

001 张三 男 19

No Answer!

字符串数组之间的比较用,strcmp();string类型可以用== 相等返回0,大于返回大于0的整数,小于返回小于0的整数;

#include <iostream>
#include <cstring>
using namespace std;
struct Pinfo {
    char id[5];
    char name[60];
    char sex[5];
    int age;
};
int main() {
    int N,M;
    while(cin>>N) {
        Pinfo pis[N];
        for (int i = 0; i < N; i++)
            scanf("%s %s %s %d", pis[i].id, pis[i].name, pis[i].sex, &pis[i].age);
        cin >> M;
        char id[5];
        Pinfo *p = pis;
        while (M--) {
            cin >> id;
            int find = 0;
            for (int i = 0; i < N; i++) {
                if (!strcmp(id, (p + i)->id)) {
                    find = 1;
                    cout << (p + i)->id << ' ' << (p + i)->name << ' ' << (p + i)->sex << ' ' << (p + i)->age << endl;
                    break;
                }
            }
            if (!find) cout << "No Answer!" << endl;
        }
    }
    return 0;
}