题目1069:查找学生信息

题目描述:

 输入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!”
样例输入:
4
01 李江 男 21
02 刘唐 男 23
03 张军 男 19
04 王娜 女 19
5
02
03
01
04
03
样例输出:
02 刘唐 男 23
03 张军 男 19
01 李江 男 21
04 王娜 女 19
03 张军 男 19



<div class="line number51 index50 alt2"><code class="c comments">/**************************************************************</code></div><div class="line number52 index51 alt1"><code class="c spaces">    </code><code class="c comments">Problem: 1069</code></div><div class="line number53 index52 alt2"><code class="c spaces">    </code><code class="c comments">User: Carvin</code></div><div class="line number54 index53 alt1"><code class="c spaces">    </code><code class="c comments">Language: C++</code></div><div class="line number55 index54 alt2"><code class="c spaces">    </code><code class="c comments">Result: Runtime Error

仅供借鉴!只是提出一种方法!真机调试是没有问题的!
</code></div><div class="line number56 index55 alt1"><code class="c comments">****************************************************************/</code></div>
#include <iostream>
#include <string>
using namespace std;
struct student
{
    int studentNum;
    int age;
    string sex;
    string name;
};
int main()
{
    student A[1000];
    int Index[10000];
    int a,b,c;
    int m,n;
    int i,j,k;
    while (cin>>n)
    {
        bool flag =false;
        for (i=0;i<n;i++)
        {
            cin>>A[i].studentNum>>A[i].name>>A[i].sex>>A[i].age;
        }
        cin>>m;
        for (j=0;j<m;j++)
        {
            cin>>Index[j];
        }
        for (k=0;k<j;k++)
        {
            for (int a=0;a<=i;a++)
            {
                if (Index[a]==A[k].studentNum)
                {
                    flag = true;
                    if(Index[a]<10)
                    cout<<"0"<<A[a].studentNum<<" "<<A[a].name<<" "<<A[a].sex<<" "<<A[a].age<<endl;
                    else
                        cout<<A[a].studentNum<<" "<<A[a].name<<" "<<A[a].sex<<" "<<A[a].age<<endl;
                }
            }
            if (!flag)
            {
                cout<<"'No Answer!'"<<endl;
            }
        }
    }
}



    #include<stdio.h>
    #include<string.h>
    struct node{
        char num[100];
        char name[100];
        char sex[10];
        int age;   
    }stu[1005];
     
     
    int main()
    {
        int i,j,m,n;
        char s[10005][100];
        while(scanf("%d",&n)!=EOF){
            for(i=0;i<n;i++){
                scanf("%s %s %s %d",stu[i].num,stu[i].name,stu[i].sex,&stu[i].age);            
            }                      
            scanf("%d",&m);
            for(i=0;i<m;i++)  scanf("%s",s[i]);
            for(i=0;i<m;i++){
                for(j=0;j<n;j++){
                    if(strcmp(stu[j].num,s[i])==0){
                        printf("%s %s %s %d\n",stu[j].num,stu[j].name,stu[j].sex,stu[j].age); 
                        break;                      
                    }            
                }            
                if(j==n) printf("No Answer!\n");
            }
        }
        return 0;
    }
    /**************************************************************
        Problem: 1069
        User: Carvin
        Language: C++
        Result: Accepted
        Time:20 ms
        Memory:2136 kb
    ****************************************************************/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值