九度oj-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

代码:

#include<stdio.h>  
#include<string.h>  
typedef struct node  
{  
    char id[100];  
    char name[200];  
    char sex[10];  
    int age;  
}node;  
node data[1001];  
int main(int argc, char *argv[])  
{  
    int N;  
    int M;  
    while(~scanf("%d",&N))  
    {  
        for(int i=0;i<N;++i)  
        {  
            scanf("%s%s%s%d",data[i].id,data[i].name,data[i].sex,&data[i].age);  
        }  
        scanf("%d",&M);  
        char queryid[100];  
        int j;  
        for(int i=0;i<M;++i)  
        {  
            scanf("%s",queryid);  
            for(j=0;j<N;++j)  
            {  
                if(strcmp(data[j].id,queryid)==0)  
                {  
                    printf("%s %s %s %d\n",data[j].id,data[j].name,data[j].sex,data[j].age);  
                    break;  
                }  
            }  
            if(j==N)  
                printf("No Answer!\n");  
        }  
    }  
    return 0;  
}