問題 C: 查找學生信息
時間限制: 1 Sec 內存限制: 32 MB
題目描述
輸入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!
經驗總結
emmmm,注意結構體裏,儲存名字的字符數組定義大一些,這題的名字長度有些變態,不正常!往大了定義,其他的問題不大~~
AC代碼
#include <cstdio>
#include <cstring>
struct student
{
char name[100];
char sex[100];
int age;
}stu[1010];
int main()
{
int n,no,m;
char temp[100];
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
{
scanf("%d",&no);
scanf("%s %s %d",stu[no].name,stu[no].sex,&stu[no].age);
}
scanf("%d",&m);
if(m==0) break;
for(int i=0;i<m;i++)
{
memset(temp,'\0',sizeof(temp));
scanf("%s",temp);
sscanf(temp,"%d",&no);
if(stu[no].age!=NULL)
printf("%s %s %s %d\n",temp,stu[no].name,stu[no].sex,stu[no].age);
else printf("No Answer!\n");
}
}
return 0;
}