PTA基础编程题目集 7-34 通讯录的录入与显示(C语言实现) 摘要本文详细记录了“通讯录查询”程序的题目描述与 C 语言实现。程序通过结构体存储联系人信息支持按编号查询并输出指定记录输入输出格式规范代码包含完整注释适合 C 语言初学者参考。题目描述通讯录中的一条记录包含下述基本信息朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。本题要求编写程序录入 N 条记录并且根据要求显示任意某条记录。输入格式输入在第一行给出正整数N≤ 10随后N行每行按照格式姓名 生日 性别 固话 手机给出一条记录。其中姓名是不超过10个字符、不包含空格的非空字符串生日按yyyy/mm/dd的格式给出年月日性别用M表示男、F表示女固话和手机均为不超过15位的连续数字前面有可能出现。在通讯录记录输入完成后最后一行给出正整数K并且随后给出K个整数表示要查询的记录编号从 0 到 N−1顺序编号。数字间以空格分隔。输出格式对每一条要查询的记录编号在一行中按照姓名 固话 手机 性别 生日的格式输出该记录。若要查询的记录不存在则输出 Not Found。输入样例3 Chris 1984/03/10 F 86181779452 13707010007 LaoLao 1967/11/30 F 057187951100 8618618623333 QiaoLin 1980/01/01 M 84172333 10086 2 1 7输出样例LaoLao 057187951100 8618618623333 F 1967/11/30 Not Found代码部分实现#includestdio.h// 引入标准输入输出头文件#includestring.h// 引入字符串处理头文件typedefstruct{// 定义通讯录结构体类型charname[11];// 姓名字符串最多10个字符charbirthday[11];// 生日字符串格式yyyy/mm/ddchargender;// 性别字符M或FcharfixedPhone[16];// 固定电话字符串最多15位charmobilePhone[16];// 移动电话字符串最多15位}Contact;// 结构体类型名为Contactintmain(){intn;// 定义通讯录记录条数scanf(%d,n);// 读取记录条数Contact contacts[10];// 定义Contact结构体数组最多存储10条记录for(inti0;in;i){// 循环读取n条记录scanf(%s %s %c %s %s,// 按格式读取姓名 生日 性别 固话 手机contacts[i].name,// 第i条记录的姓名contacts[i].birthday,// 第i条记录的生日contacts[i].gender,// 第i条记录的性别contacts[i].fixedPhone,// 第i条记录的固定电话contacts[i].mobilePhone);// 第i条记录的移动电话}intk;// 定义要查询的记录编号个数scanf(%d,k);// 读取查询次数for(inti0;ik;i){// 循环处理k次查询intidx;// 定义要查询的记录索引scanf(%d,idx);// 读取查询索引if(idx0idxn){// 判断索引是否有效printf(%s %s %s %c %s\n,// 按指定格式输出记录contacts[idx].name,// 姓名contacts[idx].fixedPhone,// 固定电话contacts[idx].mobilePhone,// 移动电话contacts[idx].gender,// 性别contacts[idx].birthday);// 生日}else{printf(Not Found\n);// 索引无效则输出 Not Found}}return0;// 程序正常结束}下面是程序的整体执行流程是否是是否否开始读取记录条数 N循环读取 N 条记录i N 读取一条记录姓名 生日 性别 固话 手机存入 contacts[i]i读取查询次数 K循环 K 次j K 读取查询索引 idxidx 有效输出记录姓名 固话 手机 性别 生日输出 Not Foundj结束