c语言200例 063 信息查询

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

今天给大家带来的是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.mfbz.cn/a/883057.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机视觉的应用34-基于CV领域的人脸关键点特征智能提取的技术方法

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用34-基于CV领域的人脸关键点特征智能提取的技术方法。本文主要探讨计算机视觉领域中人脸关键点特征智能提取的技术方法。详细介绍了基于卷积神经网络模型进行人脸关键点提取的过程&#xff0c;包括使…

css-functions伪类选择器系列二

一张图浏览CSS Functions 概述 本文主要讲述CSS的部分伪类选择器第二篇,包括::nth-child、:nth-last-child、:nth-of-type和:nth-last-of-type。 :nth-child() :nth-child伪类是根据父元素的子元素列表中的索引来选择元素。 语法 :nth-child是以一个参数nth来描述匹配兄…

apache paimon简介(官翻)

介绍 如下架构所示: 读/写操作: Paimon 支持多样化的数据读写方式,并支持 OLAP 查询。 读取: 支持从历史快照(批处理模式)中消费数据,从最新偏移量(流处理模式)中读取数据,或以混合方式读取增量快照。写入: 支持从数据库变更日志(CDC)进行流式同步,从离线数据中…

Android平台使用VIA创建语音交互应用

Android平台使用VIA创建语音交互应用 概述 在 Android 平台上开发一款语音助手应用需要整合多种技术,包括语音识别(ASR)、文字转语音(TTS)、以及热词检测(Hotword Detection)。这些技术共同构成了语音助手应用的核心交互方式,使用户能够通过语音命令与设备进行无缝交…

EfficientNet(2019):基于复合缩放的自动化架构搜索高效网络!

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks EfficientNet&#xff1a;重新思考卷积神经网络的模型扩展 论文下载地址&#xff1a; https://arxiv.org/abs/1905.11946 学习笔记参考了这位大佬&#xff1a;https://blog.csdn.net/qq_37541097/ar…

ProgrammerAI—AI辅助编程学习指南

前言 随着AIGC&#xff08;AI生成内容&#xff09;技术的快速发展&#xff0c;诸如ChatGPT、MidJourney和Claude等大语言模型相继涌现&#xff0c;AI辅助编程工具正逐步改变程序员的工作方式。这些工具不仅可以加速代码编写、调试和优化过程&#xff0c;还能帮助解决复杂的编程…

python标识符和关键字

1、标识符 1.1 写法 标识符由字母、下划线和数字组成&#xff0c;且数字不能开头。严格区分大小写。不能使用关键字。 # 标识符由字母、下划线和数字组成&#xff0c;且数字不能开头。 # a_1_$ 1 # print(a_1_$)# 严格区分大小写。 # Animal 1 # print(animal)# 不能使用关…

仓颉编程入门2,启动HTTP服务

上一篇配置了仓颉sdk编译和运行环境&#xff0c;读取一个配置文件&#xff0c;并把配置文件简单解析了一下。 前面读取配置文件&#xff0c;使用File.readFrom()&#xff0c;这个直接把文件全部读取出来&#xff0c;返回一个字节数组。然后又创建一个字节流&#xff0c;给文件…

vscode[c、cmake]:某些引用可能丢失,因为在 查找所有引用 启动时,工作区分析不完整

1. 问题描述 vscode 调试一个c语言工程&#xff0c;利用cmake编译调试&#xff0c;通过cmakelist.txt传递宏标识来条件编译代码。但是&#xff0c;在build之后&#xff0c;传递的宏标识不能让vscode自动转跳相关代码&#xff0c;猜测为代码分析时未包含宏标识。提示&#xff1a…

双向链表的基本结构及功能实现

1.基本结构: 双向链表是一种链表数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含三个部分&#xff1a; (1).数据域&#xff1a;存储节点的数据 (2).前驱指针:指向前一个节点 (3).后驱指针:指向下一个节点 2.基本特性&#xff1a; 双向链接: 与单向链表…

不在同一局域网怎么远程桌面?非局域网环境下,实现远程桌面访问的5个方法分享!

非局域网环境下&#xff0c;怎么远程桌面&#xff1f;还能做到吗&#xff1f; 在企业管理中&#xff0c;远程桌面访问已成为提高工作效率、实现跨地域协同工作的关键工具。 然而&#xff0c;当被控端与控制端不在同一局域网时&#xff0c;如何实现远程桌面连接成为了许多企业…

【Android】页面启动耗时统计流程梳理

文章基于Android 11 写在前面&#xff1a; 最近的文章都会放流程图&#xff0c;时序图之类的图片&#xff0c;解释下为什么这么做&#xff1a; 图片的好处&#xff1a; 流程清晰&#xff0c;一目了然很多代码&#xff0c;如同老太太的裹脚布&#xff0c;又臭又长。影响理解&a…

【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台

一、介绍 果蔬识别系统&#xff0c;本系统使用Python作为主要开发语言&#xff0c;通过收集了12种常见的水果和蔬菜&#xff08;‘土豆’, ‘圣女果’, ‘大白菜’, ‘大葱’, ‘梨’, ‘胡萝卜’, ‘芒果’, ‘苹果’, ‘西红柿’, ‘韭菜’, ‘香蕉’, ‘黄瓜’&#xff09;…

基于SpringBoot+Vue的校园快递代取管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

CNN网络训练WISDM数据集:模型仿真及可视化分析

卷积神经网络&#xff08;CNN&#xff09;因其强大的特征提取能力和深度学习架构而备受推崇&#xff0c;CNN在处理图像数据时展现出的卓越性能&#xff0c;使其成为解决各种视觉识别任务的首选工具。WISDM数据集是一个广泛用于运动估计研究的基准数据集&#xff0c;它包含了多个…

14年408-计算机网络

第一题&#xff1a; 解析&#xff1a;OSI体系结构 OSI由下至上依次是&#xff1a;物理层-网络链路层-网络层-运输层-会话层-表示层-应用层。 因此直接为会话层提供服务的是运输层。答案选C 第二题&#xff1a; 解析&#xff1a;数据链路层-交换机的自学习和帧转发 主机a1向交换…

关于养育孩子的一点想法

我们许多人总是很看重结果&#xff0c;不重视过程&#xff0c;在工作中有时候确实会这样&#xff0c;但这种想法会经常蔓延到生活中&#xff0c;比如养育孩子&#xff0c;我们总有一个目标&#xff0c;希望他成才&#xff0c;实现某种理想&#xff0c;弥补你人生中的某种缺憾&a…

开通微信视频号直播的流程

首先我们要了解什么是视频号&#xff1f; 视频号其实就是腾讯家的“抖音”/“快手”&#xff0c;可以发布视频和直播&#xff08;包括直播带货&#xff09;。 微信视频号不同于订阅号、服务号&#xff0c;它是一个全新的内容记录与创作平台&#xff0c;也是一个了解他人、了解…

AIGC专栏15——CogVideoX-Fun详解 支持图文生视频 拓展CogVideoX到256~1024任意分辨率生成

AIGC专栏15——CogVideoX-Fun详解 支持图&文生视频 拓展CogVideoX到256&#xff5e;1024任意分辨率生成 学习前言项目特点生成效果相关地址汇总源码下载地址 CogVideoX-Fun详解技术储备Diffusion Transformer (DiT)Stable Diffusion 3EasyAnimate-I2V 算法细节算法组成InPa…

计算机出现msvcp140.dll丢失的6种解决方法,亲测有效

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“msvcp140.dll丢失”。这个错误通常会导致某些应用程序无法正常运行&#xff0c;给用户带来困扰。本文将总结6种解决msvcp140.dll丢失的方法&#xff0c;帮助大家轻松解决这个问题。 一&…