通讯录中的一条记录包含下述基本信息:朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。本题要求编写程序,录入 N 条记录,并且根据要求显示任意某条记录。程序存入 test33.c 输入格式:输入在第 1 行给出正整数 N(<=10);随后 N 行,每行按照格式“姓名 生日 性别 固话 手机”给出一条记录。其中“姓名”是不超过 10 个字符、不包含空格的非空字符串;生日按“yyyy/mm/dd”的格式给出年月日;性别用“M”表示“男”、“F”表示“女”;“固话”和“手机”均为不超过 15 位的连续数字,前面有可能出现“+”。在通讯录记录输入完成后,最后一行给出正整数 K,并且随后给出 K 个整数,表示要查询的记录编号(从 0 到 N-1 顺序编号)。数字间以空格分隔。输出格式:对每一条要查询的记录编号,在一行中按照“姓名 固话 手机 性别 生日”的格式输出该记录。若要查询的记录不存在,则输出“Not Found”。
时间: 2023-05-15 15:07:44 浏览: 190
以下是 test33.c 的代码:
#include <stdio.h>
#include <string.h>
struct Contact {
char name[11];
char birthday[11];
char gender;
char phone[16];
char mobile[16];
};
int main() {
int n, k;
scanf("%d", &n);
struct Contact contacts[n];
for (int i = 0; i < n; i++) {
scanf("%s %s %c %s %s", contacts[i].name, contacts[i].birthday, &contacts[i].gender, contacts[i].phone, contacts[i].mobile);
}
scanf("%d", &k);
int query[k];
for (int i = 0; i < k; i++) {
scanf("%d", &query[i]);
}
for (int i = 0; i < k; i++) {
int index = query[i];
if (index < 0 || index >= n) {
printf("Not Found\n");
} else {
printf("%s %s %s %c %s\n", contacts[index].name, contacts[index].phone, contacts[index].mobile, contacts[index].gender, contacts[index].birthday);
}
}
return 0;
}
请注意,这是一个完整的程序,可以直接编译运行。如果您需要更详细的解释,请告诉我。
阅读全文