【C语言从不挂科到高绩点】28-数组综合运用

 

 Hello!彦祖们,俺又回来了!!!,继续给大家分享 《C语言从不挂科到高绩点》课程!! 

        数组是我们在C语言学习过程中比较重要的一个知识点,也是在今后的学习与开发过程中经常会用到的技能,灵活使用数组,可以让我们的开发事半功倍,接下来我们一起看看如何使用数组完成增删改查的一系列操作。

本套课程将会从0基础讲解C语言核心技术,适合人群:

  1. 大学中开设了C语言课程的同学
  2. 想要专升本或者考研的同学
  3. 想要考计算机等级证书的同学
  4. 想要从事C/C++/嵌入式开发的同学


===============点个关注吧==============

======================================

【题目需求】

现在假设有以下数组:

int data[100];

请完成对这个数组的增删改查操作。

程序运行起来之后显示如下菜单:

  1. 新增数据 2.查询指定数据 3. 查询所有数据 4.修改指定数据 5.删除指定数据 6.退出系统

功能要求:

  1. 新增数据:如果数组满了,就不能新增数据。如果没有满,提示输入要新增的数据,并将输入的数据加入到数组中
  2. 查询指定数据: 提示用户输入要查询的数据,如果数据不存在,就提示用户。如果存在显示这个数据在数组中的下标是多少
  3. 查询所有数据:显示当前数组中实际存储的数据
  4. 修改指定数据:提示用户输入要修改的数据,如果数据不存在,就提示用户无法修改。如果存在,让用户输入新的数据。然后用新的数据替换旧的数据
  5. 删除指定数据:提示用户输入要删除的数据,如果数据不存在,提示用户无法删除,如果存在,就从数组中将数据删除。

【参考代码】

/**现在假设有以下数组:
int data[100];
请完成对这个数组的增删改查操作。
程序运行起来之后显示如下菜单:
1. 新增数据   2.查询指定数据   3. 查询所有数据   4.修改指定数据   5.删除指定数据   6.退出系统功能要求:
1. 新增数据:如果数组满了,就不能新增数据。如果没有满,提示输入要新增的数据,并将输入的数据加入到数组中
2. 查询指定数据: 提示用户输入要查询的数据,如果数据不存在,就提示用户。如果存在显示这个数据在数组中的下标是多少
3. 查询所有数据:显示当前数组中实际存储的数据
4. 修改指定数据:提示用户输入要修改的数据,如果数据不存在,就提示用户无法修改。如果存在,让用户输入新的数据。然后用新的数据替换旧的数据
5. 删除指定数据:提示用户输入要删除的数据,如果数据不存在,提示用户无法删除,如果存在,就从数组中将数据删除。**/#include <stdio.h>int main(){printf("请输入初始化数组的大小:");int size = 0;scanf("%d",&size); // 数组大小// 数据数组int data[size];int len = 0;// 实际元素的个数// 死循环菜单while(1){printf("##################################################\n");printf("### 1.新增数据   2.查询所有数据  3.查询指定数据 ###\n");printf("### 4.修改数据   5.删除指定数据  6.退出系统     ###\n");printf("##################################################\n");printf("请选择:");int con = 0;scanf("%d",&con);if(con==1){printf("======>>>新增数据<<<=======\n");while(1){// 判断数组是否满了if(len>=size){printf("数组满了,不能再添加数据了\n");break;}// 没有满的情况,输入数据printf("请输入数据(-1退出):");int num = 0;scanf("%d",&num);//  如果输入的数据为-1,退出,不新增数据if(num==-1){break;// 结束循环,不再新增数据}// 数据不为-1,就将数据加入到数组中data[len] = num;len ++; // 数组实际长度(实际元素个数)加1}}else if(con==2){printf("======>>>>当前数组中的数据<<<========\n");for(int i=0;i<len;i++){// 每打印5个数换一行if(i!=0&&i%5==0){printf("\n");}printf("%d\t",data[i] );}printf("\n");}else if(con==3){printf("=======>>>查询指定数据<<<==========\n");while(1){// 先让用户输入数据printf("请输入要查询的数据(-1退出):");int num = 0;scanf("%d",&num);// 如果输入-1,就结束查询if(num==-1){break;}int flag = -1;// 如果数据存在,flag就为数据的下标,不存在flag=-1// 判断这个数据是否存在for(int i=0;i<len;i++){// 如果输入的数据等于当前数组中的数据if(num==data[i]){// 如果存在,就显示这个数据在数组中的下标flag = i;// 将数据的下标保存在flag中break;}}// for循环结束后,如果找到了flag就是数据的下标/// 没找到数据,flag就为-1// 如果不存在,需要提示用户没找到数据if(flag==-1){printf("数组中没有%d这项数据\n", num);	}else{printf("%d在数组中的下标为%d\n",num,flag);}}}else if(con==4){printf("=======>>>>修改数据<<<<========\n");// 1.输入需要修改的数据printf("请输入要修改的数据:\n");// 2.定义变量用来接收数据int old = 0;// 3.接收输入的数据scanf("%d",&old);// 4.做个标记int flag = -1;// 5.for查找是否存在这个数据for (int i = 0; i < len; ++i){// 如果输入的数据等于当前数组的数据if(old==data[i]){flag = i;  // 将flag修改为数据的下标break;}}if(flag==-1){printf("%d在数组中不存在,无法修改\n",old);}else{// 6.如果存在,就继续输入新的数据printf("请输入新的数据:");int new = 0;scanf("%d",&new);// 7.用新数据将旧数据替换掉// flag现在存储的就是,需要修改数据的下标data[flag] = new;}}else if(con==5){printf("=====>>>删除指定数据<<<======\n");printf("请输入要删除的数据:");int delete = 0;scanf("%d",&delete);// 查询要删除的数据在数组中是否存在int flag = -1;for (int i = 0; i < len; ++i){// 如果输入的数据等于当前数组的数据if(delete==data[i]){flag = i;  // 将flag修改为数据的下标break;}}if(flag==-1){printf("%d在数组中不存在,无法删除\n",delete );}else{// 将数组中的元素,从下标为flag的位置,后面的元素逐个向前移动//  下标     0 1  2 3 4 5// 假设数组:{8,9,10,7,6,2} 现在删除10 10的下标为2for(int i=flag;i<len;i++){// 第1次循环  i=2  data[2]=data[3] //  下标            0 1 2 3 4 5//  处理之后的数组:{8,9,7,7,6,2}// 第2次循环 i=3   data[3]=data[4]//  下标            0 1 2 3 4 5//  处理之后的数组:{8,9,7,6,6,2}// 第3次循环 i=4   data[4]=data[5]//  下标            0 1 2 3 4 5//  处理之后的数组:{8,9,7,6,2,2}// 第4次循环 i=5   data[5]=data[6] //  下标            0 1 2 3 4 5//  处理之后的数组:{8,9,7,6,2,0}data[i] = data[i+1];}// 数组实际长度-1len --;}}else {printf("程序结束,欢迎下次使用\n");break;}}return 0;
}

 

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

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

相关文章

明达IO:赋能工业机器人新未来

摘要&#xff1a; 明达技术以其卓越的分布式IO&#xff08;MR30&#xff09;与一体式IO&#xff08;MR20&#xff09;产品&#xff0c;为工业机器人行业提供了完美的信号交互解决方案。在集群式机器人应用场景中&#xff0c;MR30分布式IO以其稳定性能和自由热插拔功能&#xf…

“跨时空拥抱”风靡TikTok,这款AI视频工具借势变现20万美金,你也来看看吧!

用AI生成跨时空拥抱最近悄悄在海外翻红&#xff0c;还带火了一款AI视频产品。 8月28日&#xff0c;TikTok博主“iammskira”发布了一条配文为“用AI实现了拥抱我的妈妈&#xff0c;因为她已经不在人世了”的短视频教程&#xff0c;在TikTok上走红。 视频中&#xff0c;AI不仅…

Java毕业设计:Java社区物品置换网站系统毕业设计源代码作品和开题报告

博主介绍&#xff1a;黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者&#xff0c;CSDN博客专家&#xff0c;在线教育专家&#xff0c;CSDN钻石讲师&#xff1b;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…

xss-labs靶场第五关测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、注入点寻找 2、使用hackbar进行payload测试 3、绕过结果 四、源代码分析 五、结论 一、测试环境 1、系统环境 渗透机&#xff1a;本机(127.0.0.1) 靶 机&#xff1a;本机(127.0.0.…

如何下载和安装CLion,图文详解

一、下载 登录JetBrains官网&#xff0c;下载最新版本的Clion&#xff0c;Clion目前没有社区版&#xff0c;都是专业版。 二、安装 1、启动Clion安装程序&#xff0c;下一步。 2、修改安装目录&#xff0c;下一步。 3、创建桌面快捷方式&#xff0c;更新PATH变量&#xff0…

【汇编语言】寄存器(CPU工作原理)(六)—— 修改CS,IP的指令以及代码段

文章目录 前言1. 修改CS、IP的指令2. 问题分析:CPU运行的流程3. 代码段小结结语 前言 &#x1f4cc; 汇编语言是很多相关课程&#xff08;如数据结构、操作系统、微机原理&#xff09;的重要基础。但仅仅从课程的角度出发就太片面了&#xff0c;其实学习汇编语言可以深入理解计…

Excel中多条件筛选问题解决方法

例题解析: 有雇员信息表如下所示&#xff1a; 查询出 Gender 为 Female&#xff0c;且 1970 年以前出生的员工&#xff1a; spl("E(?1).select(Gender""Female"" && Birthday<""1970-01-01"")",A1:O32)SPL桌面…

SpringBoot框架在服装制造业的应用案例

2 关键技术简介 2.1 JAVA技术 Java是一种非常常用的编程语言&#xff0c;在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中&#xff0c;Java的身影无处不在&#xff0c;并且拥有旺盛的生命力。Java的跨平台能力十分强大&#xff0c;只需一次编译&#xff0…

手写mybatis之数据源的解析、创建和使用

前言 在上一章节我们解析 XML 中的 SQL 配置信息&#xff0c;并在代理对象调用 DefaultSqlSession 中进行获取和打印操作&#xff0c;从整个框架结构来看我们解决了对象的代理、Mapper的映射、SQL的初步解析&#xff0c;那么接下来就应该是连库和执行SQL语句并返回结果了。 那么…

需求10——通过改一个小bug来学习如何定位问题

在浏览我之前完成的一些小需求时&#xff0c;我发现了一个非常有价值的需求。这个需求可以让我深入了解系统中关于故障上报的功能。通过完善这个需求&#xff0c;我能够全面掌握整个故障上报的流程。 这个需求主要是关于故障上报流程中出现的问题。当前的流程如下&#xff1a;…

地面沉降数值模拟方法

目前&#xff0c;地面沉降问题是我国较为常见的环境地质问题&#xff0c;其巨大的破坏力严重影响城市建筑安全和交通轨道运行。围绕地面沉降的防控与治理&#xff0c;是工程地质、环境地质、轨道交通设计等相关技术人员十分关注的领域&#xff0c;而数值模拟技术是评估防控效果…

云栖实录 | Hologres3.0全新升级:一体化实时湖仓平台

本文根据2024云栖大会实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a; 姜伟华 | 阿里云智能集团资深技术专家、Hologres 负责人 丁 烨 | 阿里云智能集团产品专家、Hologres 产品负责人 活动&#xff1a; 2024 云栖大会 - 商用大数据计算与分析平台论…

RS485为什么用隔离?

RS-485是工业与仪器仪表中的物理层总线设计 标准&#xff0c;目前已成为业界应用最为广泛的标准通信接 口之一。这种通信接口允许在简单的一对双绞线上 进行多点双向通信&#xff0c;它所具有的噪声抑制能力、数 据传输速率、电缆长度及可靠性是其他标准无法比 拟的。 当需要在…

探索未来:picows,Python的AI新宠

文章目录 **探索未来&#xff1a;picows&#xff0c;Python的AI新宠**背景&#xff1a;为何选择picows&#xff1f;什么是picows&#xff1f;如何安装picows&#xff1f;简单的库函数使用方法场景应用常见Bug及解决方案总结 探索未来&#xff1a;picows&#xff0c;Python的AI新…

国资委推动中央企业人工智能发展

2023年以来&#xff0c;国资委多次对中央企业发展人工智能提出要求。2024年2月&#xff0c;国资委召开中央企业人工智能专题推进会&#xff0c;提出加快推动人工智能发展&#xff0c;是国资央企发挥功能使命&#xff0c;抢抓战略机遇&#xff0c;培育新质生产力&#xff0c;推进…

Axios 网络请求

文章目录 Axios 网络请求1.Axios 使用1.Axios 简介2.Axios 安装安装命令 3.Axios 引入方式全局引入局部引入 2.整合 vue1.在组件中使用 axios 发送请求发送结果这里就出现了跨域问题 3.跨域后端解决办法全局配置类 加入注解 CrossOrigin请求结果 全局配置 baseUrl Axios 网络请…

Linux内核启动过程1

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

阿里云+frp内网穿透工作站远程开机

frp 是一个可用于内网穿透的高性能的反向代理应用&#xff0c;支持 tcp, udp, http, https 等协议。利用 frp 和一个带有公网 IP 的云服务器作为中间跳板&#xff0c;可以实现内网穿透&#xff0c;不在家的时候也可以访问到家里面的工作站。有了这个缺口之后&#xff0c;在外面…

基于STM32单片机的恒温焊台的设计

本设计以STM32F401CBU6为主控控制芯片&#xff0c;包含电压采集模块&#xff0c;温度控制模块&#xff0c;输入模块和OLED显示模块等。使用EC11编码器设置温度&#xff0c;选择开关机时间&#xff0c;当焊台开机后&#xff0c;就可以设置所需要的温度&#xff0c;这时的手柄开始…

BricsCAD 24:智能绘图与自动化,加速设计流程

BricsCAD是一款功能丰富、易于使用且具有良好兼容性的CAD软件。bricscad 24 mac一款集2D绘图和3D建模于一体的CAD软件&#xff0c;它由比利时Bricsys NV公司研发&#xff0c;界面与AutoCAD相近&#xff0c;易于上手。 BricsCAD 24 for mac v24.1.05 注册密钥下载 BricsCAD 21 …