结构-04.通讯录的录⼊与显⽰
printf输出格式03结构-04. 通讯录的录⼊与显⽰(10)
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
乔林(清华⼤学)
通讯录中的⼀条记录包含下述基本信息:朋友的姓名、出⽣⽇期、性别、固定电话号码、移动电话号码。本题要求编写程序,录⼊N条记录,并且根据要求显⽰任意某条记录。
输⼊格式:
输⼊在第1⾏给出正整数N(<=10);随后N⾏,每⾏按照格式“姓名⽣⽇性别固话⼿机”给出⼀条记录。其中“姓名”是不超过10个字符、不包含空格的⾮空字符串;⽣⽇按“yyyy/mm/dd”的格式给出年⽉⽇;性别⽤“M”表⽰“男”、“F”表⽰“⼥”;“固话”和“⼿机”均为不超过15位的连续数字,前⾯有可能出现“+”。
在通讯录记录输⼊完成后,最后⼀⾏给出正整数K,并且随后给出K个整数,表⽰要查询的记录编号(从0到N-1顺序编号)。数字间以空格分隔。
输出格式:
对每⼀条要查询的记录编号,在⼀⾏中按照“姓名固话⼿机性别⽣⽇”的格式输出该记录。若要查询的记录不存在,则输出“Not Found”。
输⼊样例:
3
Chris 1984/03/10 F +86181779452 137********
LaoLao 1967/11/30 F 0571******** +86186********
QiaoLin 1980/01/01 M 84172333 10086
2 1 7
输出样例:
LaoLao 0571******** +86186******** F 1967/11/30
Not Found
1 #include<stdio.h>
2 #include<math.h>
3 #include<stdlib.h>
4 #include<string.h>
5int main()
6 {
7struct record
8    {
9char name[12];
10char bir[12];
11char gender;
12char sta[20];
13char mobile[20];
14    };
15    record a[10];
16int i, n, k;
17    scanf("%d", &n);
18for(i = 0; i < n; i++)
19    {
20        scanf("%s %s %c %s %s", a[i].name, a[i].bir, &a[i].gender, a[i].sta, a[i].mobile);
21    }
22    scanf("%d", &k);
23for(i = 0; i < k; i++)
24    {
25int temp;
26        scanf("%d", &temp);
27if(temp >= n || temp < 0)
28        {
29            printf("Not Found\n");
30        }
31else
32        {
33            printf("%s %s %s %c %s\n", a[temp].name, a[temp].sta, a[temp].mobile, a[temp].gender, a[temp].bir);
34        }
35    }
36return0;
37 }