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代码部分实现
#include<stdio.h>// 引入标准输入输出头文件#include<string.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(inti=0;i<n;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(inti=0;i<k;i++){// 循环处理k次查询intidx;// 定义要查询的记录索引scanf("%d",&idx);// 读取查询索引if(idx>=0&&idx<n){// 判断索引是否有效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;// 程序正常结束}下面是程序的整体执行流程:
