c语言200例 063 信息查询

news2024/11/18 15:43:12

大家好,欢迎来到无限大的频道。

今天给大家带来的是c语言200例

题目要求:

        从键盘当中输入姓名和电话号,以“#”结束,编程实现输入姓名、查询电话号的功能。

参考代码如下:

#include <stdio.h>
#include <string.h>
#define MAX 16

struct aa {
    char name[15];
    char tel[15];
}; 

int readin(struct aa *a) {
    int i = 0;
 	printf("请输入姓名和电话号码(输入#结束):\n");
    while (i < MAX) {
        printf("姓名: ");
        scanf("%14s", a[i].name);  // 限制输入字符数,避免溢出
        if (strcmp(a[i].name, "#") == 0) {
            break;  // 如果输入名称是#,则结束输入
        }
        printf("电话: ");
        scanf("%14s", a[i].tel);  // 限制输入字符数,避免溢出
        i++;
    }
    return i;  // 返回实际输入的数量
}

void search(struct aa *b, char *x, int n) {
	int i;
    for (i = 0; i < n; i++) {
        if (!strcmp(b[i].name, x)) {
            printf("姓名: %s 电话: %s\n", b[i].name, b[i].tel);
            return;  // 找到后直接返回
        }
    }
    printf("没有找到!\n");
}

int main() {
    struct aa s[MAX];
    int num;
    char name[15];
    num = readin(s);
    printf("输入姓名: ");
    scanf("%14s", name);  // 同样处理
    search(s, name, num);
    return 0;
}

代码分析

  1. 头文件与宏定义
    #include <stdio.h>
    #include <string.h>
    #define MAX 16
    
    • #include <stdio.h>:引入标准输入输出库,用于使用输入输出函数。
    • #include <string.h>:引入字符串处理库,用于字符串的函数(如 strcmp)。
    • #define MAX 16:定义常量 MAX,用于表示最多可以输入16个联系人的信息。
  2. 定义结构体
    struct aa {
        char name[15];
        char tel[15];
    };
    
    • 定义一个名为 aa 的结构体,用于存储每个联系人的姓名和电话号码,各自定义为15个字符的数组。
  3. readin 函数
    int readin(struct aa *a) {
        int i = 0;
        printf("请输入姓名和电话号码(输入#结束):\n");
        while (i < MAX) {
            printf("姓名: ");
            scanf("%14s", a[i].name);  // 限制输入字符数,避免溢出
            if (strcmp(a[i].name, "#") == 0) {
                break;  // 如果输入名称是#,则结束输入
            }
            printf("电话: ");
            scanf("%14s", a[i].tel);  // 限制输入字符数,避免溢出
            i++;
        }
        return i;  // 返回实际输入的数量
    }
    
    • 用于读取用户的姓名和电话号码,最多读取 MAX 条记录。
    • 每次输入时,提示用户输入姓名和电话号码,并存储到结构体数组中。
    • 如果用户输入 #,则结束录入,退出循环。
    • 返回实际录入的数量 i,供后续查找使用。
  4. search 函数
    void search(struct aa *b, char *x, int n) {
        int i;
        for (i = 0; i < n; i++) {
            if (!strcmp(b[i].name, x)) {
                printf("姓名: %s 电话: %s\n", b[i].name, b[i].tel);
                return;  // 找到后直接返回
            }
        }
        printf("没有找到!\n");
    }
    
    • 用于根据用户输入的姓名查找联系人。
    • 遍历 b 数组中的前 n 帧数据(通过 num 传入)并进行比较。
    • 如果找到与输入姓名匹配的联系人,则打印该联系人的姓名和电话号码,并返回。
    • 如果所有数据都遍历完毕且没有结果,输出 “没有找到!”。
  5. main 函数
    int main() {
        struct aa s[MAX];
        int num;
        char name[15];
        num = readin(s);
        printf("输入姓名: ");
        scanf("%14s", name);  // 同样处理
        search(s, name, num);
        return 0;
    }
    
    • main 函数为程序的入口点。
    • 定义一个 struct aa 类型的数组 s 用于存储联系人。
    • 调用 readin 函数以获取用户输入的联系人信息,并返回录入的数量存储在 num 中。
    • 提示用户输入要查询的姓名,并调用 search 函数进行查询。

代码思路总结

  1. 数据输入模块
    • 通过 readin 函数读取用户输入的姓名和电话号码,将数据存储在结构体数组中,直到用户输入第一个“#”进行结束。
  2. 数据查询模块
    • 通过 search 函数根据用户输入的姓名在存储的联系人中查找对应的电话号码并打印结果。
  3. 程序结构
    • 整体结构清晰,逻辑上分为输入、存储和查询三个主要功能模块。各个部分的功能明确,且使用了适当的函数来分隔逻辑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2169395.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1.6 判定表

欢迎大家订阅【软件测试】 专栏&#xff0c;开启你的软件测试学习之旅&#xff01; 文章目录 1 基本概念1.1 作用1.2 优点 2 基本组成2.1 条件桩2.2 动作桩2.3 条件项2.4 动作项 3 判定表的结构与规则3.1 规则的生成3.2 动作结果3.3 判定表简化 4 判定表的使用场景4.1 软件测试…

什么是Node.js?

为什么JavaScript可以在浏览器中被执行&#xff1f; 在浏览器中我们加载了一些待执行JS代码&#xff0c;这些字符串要当中一个代码去执行&#xff0c;是因为浏览器中有JavaScript的解析引擎&#xff0c;它的存在我们的代码才能被执行。 不同的浏览器使用不同的javaScript解析引…

Linux 文件目录结构(详细)

一、基本介绍 Linux的文件系统是采用级层式的树状目录结构&#xff0c;在此结构中的最上层是根目录“/”&#xff0c;然后在此目录下再创建其他的目录。 Linux世界中&#xff0c;一切皆文件&#xff01; 二、相关目录 /bin[常用](/usr/bin、/usr/local/bin) 是Binary的缩写,…

RabbitMQ常用管理命令及管理后台

RabbitMQ管理命令 1、用户管理1.1、新增一个用户1.2、查看当前用户列表1.3、设置用户角色1.4、设置用户权限1.5、查看用户权限 2、RabbitMQ的web管理后台2.1、查看rabbitmq 的插件列表2.2、启用插件2.3、禁用插件2.4、访问RabbitMQ的web后台2.4、通过web页面新建虚拟主机 ./rab…

LLM - 使用 vLLM 部署 Qwen2-VL 多模态大模型 (配置 FlashAttention) 教程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142528967 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 vLLM 用…

虚拟机开启网络代理设置,利用主机代理访问国外资源

前言 有时候需要访问一些镜像网站拉取安装包或是学习资料&#xff0c;由于国内外网络环境差异和网络安全的问题&#xff0c;总会被阻拦。下文来说一下虚拟机centos7如何通过连接主机的代理软件。 一、代理软件设置 1、前提是主机要安装有代理软件&#xff0c;查看代理软件的…

LabVIEW提高开发效率技巧----并行处理

在LabVIEW开发中&#xff0c;充分利用并行处理能力可以显著提高程序的执行效率和响应速度。LabVIEW的图形化编程模型天然支持并行任务的执行&#xff0c;可以通过以下几种方式优化程序性能。 1. 并行For循环&#xff08;Parallel For Loop&#xff09; 对于能够独立执行的任务…

开源鸿蒙OpenHarmony系统更换开机Logo方法,瑞芯微RK3566鸿蒙开发板

本文适用于开源鸿蒙OpenHarmony系统更换开机Logo&#xff0c;本次使用的是触觉智能的Purple Pi OH鸿蒙开源主板&#xff0c;搭载了瑞芯微RK3566芯片&#xff0c;类树莓派设计&#xff0c;是Laval官方社区主荐的一款鸿蒙开发主板。 介绍 OpenHarmony的品牌标志、版本信息、项目…

RabbitMQ 高级特性——重试机制

文章目录 前言重试机制配置文件设置生命交换机、队列和绑定关系生产者发送消息消费消息 前言 前面我们学习了 RabbitMQ 保证消息传递可靠性的机制——消息确认、持久化和发送发确认&#xff0c;那么对于消息确认和发送方确认&#xff0c;如果接收方没有收到消息&#xff0c;那…

每日一题:⻓度最⼩的⼦数组

文章目录 一、题目二、解析1、暴力算法&#xff08;1&#xff09;纯暴力&#xff08;2&#xff09;前缀和 循环 2、滑动窗口 一、题目 209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组…

Java项目实战II基于Java+Spring Boot+MySQL的IT技术交流和分享平台的设计与实现(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在当今信息…

归并排序,外排序,计数排序(非比较排序)

归并排序&#xff1a;&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列有序…

Studying-图论包含的算法总结

目录 1.DFS&#xff08;深度优先搜索&#xff09; 代码框架&#xff1a; 2. BFS&#xff08;广度优先搜索&#xff09; 代码框架&#xff1a; 3. 并查集 4.最小生成树之Prim 5.最小生成树之Kruskal 6.拓扑排序 7. 最短路径之-dijkstra&#xff08;朴素版&#xff…

R语言非参数回归预测摩托车事故、收入数据:局部回归、核回归、LOESS可视化...

全文链接&#xff1a;https://tecdat.cn/?p37784 非参数回归为经典&#xff08;参数&#xff09;回归方法提供了一种灵活的替代方法。与假定回归关系具有依赖于有限数量的未知参数的已知形式的传统&#xff08;参数&#xff09;方法不同&#xff0c;非参数回归模型尝试从数据样…

UE虚幻引擎云渲染汽车动画的优势!

在汽车广告和动画制作领域&#xff0c;虚幻引擎&#xff08;UE&#xff09;结合云渲染技术正掀起一场技术革命。这项技术以其高性能、成本效益和灵活性&#xff0c;为创作者提供了强大的工具&#xff0c;以实现更加逼真和高效的汽车动画制作。 一、为什么选择UE虚幻引擎制作汽车…

针对考研的C语言学习(定制化快速掌握重点3)

1.数组常见错误 数组传参实际传递的是数组的起始地址&#xff0c;若在函数中改变数组内容&#xff0c;数组本身也会发生变化 #include<stdio.h> void change_ch(char* str) {str[0] H; } int main() {char ch[] "hello";change_ch(ch);printf("%s\n&q…

【YashanDB知识库】YMP迁移oracle不兼容给用户授权高级包

本文转自YashanDB官网&#xff0c;具体内容请见https://www.yashandb.com/newsinfo/7441382.html?templateId1718516 【标题】YMP迁移oracle不兼容给用户授权高级包 【关键字】oracle迁移&#xff0c;高级包授权 【问题描述】迁移评估任务中&#xff0c;oracle迁移YashanDB…

衡石分析平台系统管理手册-功能配置之全局 CSS 设置

全局 CSS 设置​ 衡石系统提供了全局 CSS 功能。通过自定义全局 CSS 可以更加精细化控制页面视觉效果&#xff0c;例如可以通过 display:none CSS 规则来隐藏不需要展示的功能。 使用场景​ 全局 CSS 可以控制页面外观&#xff0c;常用于以下场景。 场景1&#xff1a;控制页…

Golang | Leetcode Golang题解之第438题找到字符串中所有字母异位词

题目&#xff1a; 题解&#xff1a; func findAnagrams(s, p string) (ans []int) {sLen, pLen : len(s), len(p)if sLen < pLen {return}count : [26]int{}for i, ch : range p {count[s[i]-a]count[ch-a]--}differ : 0for _, c : range count {if c ! 0 {differ}}if diff…

如何展开浏览器开发者模式的Fetch/XHR

说明&#xff1a;大多数程序员都用浏览器的F12&#xff0c;开发者模式查看接口&#xff0c;我也不例外。我常用下面这个选项&#xff0c;它会过滤掉掉其他文档、样式请求&#xff0c;只展示访问服务器的接口请求 有次&#xff0c;不知道点了什么&#xff0c;这个菜单消失找不…