码迷,mamicode.com
首页 > 其他好文 > 详细

问题 C: 查找学生信息

时间:2017-11-11 19:46:28      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:get   循环   数组   tar   查找   代码   输入   span   cto   

问题 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: 查找学生信息

标签:get   循环   数组   tar   查找   代码   输入   span   cto   

原文地址:http://www.cnblogs.com/zhhjthing/p/7819753.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!