2025-02-28 学习记录--C/C++-PTA 7-34 通讯录的录入与显示

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、题目描述 ⭐️


二、代码(C语言)⭐️

解题步骤: 📚

  • 1、定义数据结构
    • 使用 typedef struct 定义一个结构体 Friend,用于存储朋友的信息:
      • name:姓名(字符串,最大长度 11)。
      • birth:生日(字符串,最大长度 11)。
      • sex:性别(单个字符,如 'M' 或 'F')。
      • tel:固定电话(字符串,最大长度 17)。
      • mob:手机号码(字符串,最大长度 17)。
  • 2、输入朋友信息
    • 从标准输入读取朋友的数量 n。
    • 使用 for 循环读取 n 个朋友的信息,并存储到 frd 数组中。
      • 每个朋友的信息包括:姓名、生日、性别、固定电话和手机号码。
      • 使用 scanf 分别读取这些信息。
  • 3、输入查询信息
    • 从标准输入读取查询的次数 k。
    • 使用 for 循环处理 k 次查询:
      • 每次查询读取一个编号 key。
      • 检查 key 是否在有效范围内(0 到 n-1):
        • 如果有效,输出对应朋友的信息(姓名、固定电话、手机号码、性别、生日)。
        • 如果无效,输出 "Not Found"。
  • 4、输出结果
    • 根据查询的编号 key,输出对应朋友的信息。
    • 如果编号无效,输出 "Not Found"。
c 复制代码
#include <stdio.h>  // 包含标准输入输出库,用于使用scanf和printf等函数

// 定义结构体 Friend,用于存储朋友的信息
typedef struct {
    char name[12];  // 姓名,最大长度为11(加上字符串结束符'\0')
    char birth[12]; // 生日,最大长度为11
    char sex;       // 性别,用单个字符表示(如 'M' 或 'F')
    char tel[18];   // 固定电话,最大长度为17
    char mob[18];   // 手机号码,最大长度为17
} Friend;

int main() {
    // 变量声明
    Friend frd[10] = {0}; // 定义一个 Friend 类型的数组 frd,用于存储最多 10 个朋友的信息
    int n,                // 记录实际输入的朋友数量
        k,                // 记录查询的次数
        key;              // 要查询的朋友记录的编号

    // 输入朋友信息
    scanf("%d", &n); // 从标准输入读取朋友的数量 n
    for (int i = 0; i < n; i++) { // 循环 n 次,读取每个朋友的信息
        scanf("%s %s %c %s %s", frd[i].name, frd[i].birth, &frd[i].sex, frd[i].tel, frd[i].mob);
        // 分别读取姓名、生日、性别、固定电话和手机号码
    }

    // 输入查询信息
    scanf("%d", &k); // 从标准输入读取查询的次数 k
    for (int i = 0; i < k; i++) { // 循环 k 次,处理每次查询
        scanf("%d", &key); // 读取要查询的朋友记录的编号
        if (key >= 0 && key < n) { // 如果查询的编号在有效范围内
            // 输出该朋友的信息
            printf("%s %s %s %c %s\n", frd[key].name, frd[key].tel, frd[key].mob, frd[key].sex, frd[key].birth);
        } else { // 如果查询的编号无效
            printf("Not Found\n"); // 输出 "Not Found"
        }
    }

    return 0; // 返回0,表示程序正常结束
}
相关推荐
Escalating_xu3 小时前
【C 语言】深入理解指针(1·下):指针运算、野指针、assert 与传址实战
java·c语言·开发语言
差不多的周周3 小时前
《骨架上下文:基于零镜头骨架的动作识别的骨架侧上下文提示学习》论文核心部分详解
学习
Century_Dragon4 小时前
从挂图到VR:汽修专业的一堂新能源原理课可以怎么上~
学习
阿钱真强道4 小时前
20 嵌入式操作系统 | ubus:把自己的程序状态暴露出去
c语言·进程通信·ubus·ubusd·blobmsg
知识分享小能手5 小时前
C++ 学习教程,从入门到精通,C++对象和类 — 详细知识点总结(10)
开发语言·c++·学习
New农民工5 小时前
倒立摆训练秘籍:理解训练参数
学习
L@ncor6 小时前
第五章 基于低代码平台的智能体搭建 · 学习笔记(Coze / Dify / FastGPT / n8n)
笔记·学习·低代码·agent·prompt工程
迪丽热爱6 小时前
多媒体应用20-903(补)
学习
小小龙学IT6 小时前
三菱 PLC MC 协议(SLMP / QnA 兼容 3E 帧)深度解析:从帧结构到 C++/Go 双语言采集实战
c语言·c++·golang
Logic1017 小时前
C语言/数据结构位运算题解:异或XOR找出游戏速通中的“独特初始能量值“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质