问题 C: 查找学生信息

Posted csuzhhj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问题 C: 查找学生信息相关的知识,希望对你有一定的参考价值。

问题 C: 查找学生信息

时间限制: 1 Sec  内存限制: 32 MB
献花: 242  解决: 92
[献花][花圈][TK题库]

题目描述

输入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!
参考代码:

#include<string >

#include<vector>

#include<iostream>

using namespace std;

    struct student{      //使用结构体

        string id;

        string name;

        string sex;

        int age;

    };

int main(){

    int n=0,m=0;

    while(cin>>n){

        vector<student> stu(n);    //定义结构体student为长度n的数组stu,>后加上空格,否则编译错误

    for(int i=0;i<n;i++){        //遍历输入n组数据

        cin>>stu[i].id>>stu[i].name>>stu[i].sex>>stu[i].age;

    }

    cin>>m;

    for(int i=0;i<m;i++){      //输入m组数,每一组数与结构体stu[j].id比对,用到了for的嵌套循环

        int flag=0;        //一个标记,用来判断是否比对成功,若成功赋值为1

        string num;

        cin>>num;

        for(int j=0;j<n;j++){

            if(num==stu[j].id){

                cout<<stu[j].id<<" "<<stu[j].name<<" "<<stu[j].sex<<" "<<stu[j].age<<" "<<endl;

                flag=1;

            }

        }

        if(flag==0){

            cout<<"No Answer!"<<endl;

        }

    }

    }

    return 0;

}

   

 

 

以上是关于问题 C: 查找学生信息的主要内容,如果未能解决你的问题,请参考以下文章

用C语言做学生信息管理系统设计

用C语言编写学生信息管理系统,十万火急!

C语言学生信息管理系统

用C语言程序书写学生信息管理系统

学生信息管理系统(链表&&C语言)

C语言程序设计学生成绩管理系统