取得数组下标_《零基础C++入门教程》——(8)搞定二维数组与循环嵌套

一、学习目标

  1. 了解二维数组的使用方法
  2. 了解循环嵌套的使用方法

目录

预备第一篇,使用软件介绍在这一篇,C++与C使用的软件是一样的,查看这篇即可:《零基础看得懂的C语言入门教程》——(二)简单带你了解流程
想了解编译原理和学习方法点这篇,学习方法和一些原理C++与C都是相同的《零基础看得懂的C语言入门教程》——(一)脱离学习误区

《零基础看得懂的C++入门教程》(1)第一个C++程序

《零基础C++入门教程》(2)数据类型、变量一看便会

《零基础看得懂的C++入门教程》——(3)表达式花样挺多鸭

《零基础看得懂的C++入门教程》——(4)条件判断原来如此

《零基础看得懂的C++入门教程》——(4)条件判断原来如此

《零基础看得懂的C++入门教程》——(6)自己动手写个函数

《零基础看得懂的C++入门教程》——(7)小数组玩起来

推荐

《零基础看得懂的C语言入门教程》——(一)脱离学习误区

《零基础看得懂的C语言入门教程》——(二)简单带你了解流程

《零基础看得懂的C语言入门教程》——(三)轻松悟第一个程序

《零基础看得懂的C语言入门教程》——(四)基本数据类型变量

《零基础看得懂的C语言入门教程》——(五)变量、常量及运算

《零基础看得懂的C语言入门教程》——(六)轻松了解逻辑运算

《零基础看得懂的C语言入门教程》——(七)循环分分钟上手

《零基础看得懂的C语言入门教程》——(八)基本数组真简单

《零基础看得懂的C语言入门教程》——(九)数组与循环嵌套

《零基础看得懂的C语言入门教程》——(十)指针原来是这样

《零基础看得懂的C语言入门教程》—(十一)自定义函数很简单

《零基础看得懂的C语言入门教程》—(十二)结构体是这么回事

二、了解C++语言的二维数组的使用方法

上一章我们学习了C++的一位数组,知道了数组是相同类型值的集合,这一节学习C++的二维数组。

一维数组可以当成是一排的数据,在这里我使用排队作为举例,在排队时只有一横排,没有纵列我们可以当成一维数组;这个时候队伍是一条线,只有横排的同学,例如第一个名叫小明、第二个叫小黄、第三个叫小绿一共有十个同学。

66d025d82336cc7c322954a39ee0cc17.png


在数组中,是从0开始数数,第一个为数组名加一个下标0,如数组a写成a[0]指代第一个小明,a[1]则表示小黄。当数组是两排的时候该如何去进行表示呢?这个时候就需要二维数组了。依旧是用排队作为例子,现在队伍增加成两排,每排十个人,第二排的第一个人该如何用数组表示呢?由于在数组中是使用0表示第一个数组元素,第二排第一个人则可以表示为 [1][0],其中一个[]表示一个维度,两个[]则表示二维数组。再次强调,数组中第2排,从排数上来说是从0到1,0表示第一排那么1则表示第二排,所以第一个下标是1;由于是第二排的第一个元素,数组的元素0表示第一个,所以第二排第一个元素则可以表示为[1][0],假设数组名为a,那么则可以写成a[1][0];

2.1 了解C++中二维数组的使用方法
现在有一个数集{1,2,3,4,5,6,7,8,9,10}需要在C++中使用二维数组表示可以写成:

int a[2][5]={1,2,3,4,5,6,7,8,9,10};

以上代码中 a[2][5] 表示数据有两排(两行),每行5个元素;之后的数据{1,2,3,4,5,6,7,8,9,10}将会分为2行存储,第一行数据为1,2,3,4,5,第二行数据为 6,7,8,9,10。取第二行第3个数据可以写为 a[1][2],取第一行第2个数据可以写成a[0][1]。

使用以下代码尝试获取数组的值:

#includeusing namespace std;int main() {int a[2][5]={1,2,3,4,5,6,7,8,9,10};cout<

结果如下:

a1ab682b083af83b74b29fec9cd90fc8.png

二维数组也可以进行值的更改,如下代码:

#includeusing namespace std;int main() {int a[2][5]={1,2,3,4,5,6,7,8,9,10};cout<

运行结果为:

c1c4bb8887374f7ba308e1a3056a3be0.png

三、了解嵌套循环及二维数组的综合使用

嵌套循环时指循环的代码中含有循环代码,如for循环内也有一个for循环。

3.1了解循环嵌套的使用方法
假设两个for循环进行嵌套,外部的for循环跳出的条件是i<5,i初始值是0,外部的循环则会循环5次;内部的for循环的循环条件为j<5,j初始值为0。那么当外面循环1次那么内部的for循环就会循环5次;外部循环则需要条件不成立的时候才能跳出来,循环1次明显不满足跳出的情况还将继续循环;这时就会造成外部for循环一次,里面循环5次。我们用例子看看,演示代码如下:

#includeusing namespace std;int main() {int i,j;     for(i=0;i<5;i++) {        for(j=0;j<5;j++) {             cout<

以上代码定义了两个变量,一个是i,另一个是j。i与j在for循环内进行了初始化,i=0;与j=0;,这句代码在执行整个循环时,只执行一次,除非再次从头开始循环,这段代码将会再次执行。外部for循环与内部for循环条件一致,均是循环变量小于5,只是循环变量不同,由于循环时,循环变量会增加,由于循环嵌套,外部循环执行1次,则内部循环将会执行5次,我们可以查看以下结果直观的查看。

运行结果如下:

d77c7a7dc5199746fc63c8af1abf5df0.png

3.2 了解循环嵌套与二维数组的综合使用
上一小节中,我们得知循环嵌套会导致外部循环执行一次,内部循环会执行多次的情况。得知了这个特性后,我们可以使用循环嵌套获取二维数组的所有值。

假设有一个二维数组为2行,每行的元素为5个,我们获取第一行的元素是[0][1],[0][2],[0][3],[0][4],[0][5],,我们可以明显的发现,第一维下标并不会发生改变,而是第二位的下标逐个加1,那么可以使用循环嵌套取得所有的值,代码如下:

#includeusing namespace std;int main() {int a[2][5]={1,2,3,4,5,6,7,8,9,10};int i,j;     for(i=0;i<2;i++) {        for(j=0;j<5;j++) {             cout<

以上代码中,外部循环的内容为i小于2,每次加1,内部循环的j小于5,每次加1,那么外部循环执行一次内部循环则会执行5次。外部循环的i为0时,内部循环执行第一次则为a[0][0] 第二次则为 a[0][1],我们将变量i和j当作a数组的下标,这时将会获取所有的二维数组值。

结果如下:

84daf463b057c886603c4fb6971cccbf.png

四、总结

通过以上描述与讲解,我们了解了以下几点内容:

了解了二维数组的取值了解循环嵌套的使用方法了解综合使用循环嵌套获取二维数组的值

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

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

相关文章

缺陷调研报告_工厂的缺陷的分析报告及产生原因

精彩文档锻造成形过程中的缺陷及其防止方法一、钢锭的缺陷钢锭有下列主要的缺陷&#xff1a;(1)缩孔和疏松钢锭中缩孔和疏松是不可避免的缺陷&#xff0c;但它们出现的部位可以控制。钢锭中顶端的保温冒口&#xff0c;造成钢液缓慢冷却和最后凝固的条件&#xff0c;一方面使锭身…

linux 的swap具体分析_Linux SWAP 深度解读

概述本文讨论的 swap基于Linux4.4内核代码 。Linux内存管理是一套非常复杂的系统&#xff0c;而swap只是其中一个很小的处理逻辑。希望本文能让读者了解Linux对swap的使用大概是什么样子。阅读完本文&#xff0c;应该可以帮你解决以下问题&#xff1a;1、 swap到底是干嘛的&…

物联卡的使用_物联卡在手机上使用有什么影响?网友:寿命分别是3个月,16天,9天...

个人使用物联卡是否合法&#xff1f;当然&#xff0c;个人是可以使用的&#xff0c;只不过是使用在除手机、平板以外的智能设备上。重点提醒&#xff1a;手机和平板除外。物联卡&#xff0c;是运营商为物流网服务企业提供的用于智能终端设备联网的&#xff0c;仅面对企业用户进…

多行文字cad提取数据_利用CAD自带的数据提取功能手动提取假表格至Excel

“吾生也有涯&#xff0c;而知也无涯&#xff0c;以有涯随无涯&#xff0c;殆已&#xff01;”&#xff0c;在已经有了免费的“源泉设计”插件可以自动提取假表格至Excel之后&#xff0c;笔者为什么还要讲解手动提取的方法&#xff1f;无他&#xff0c;生命在于折(zhuang)腾(bi…

gridview标题居中显示_Pr:制作片尾滚动字幕(旧版标题法)

本文介绍使用 Pr 的旧版标题设计器来制作传统片尾滚动字幕的方法。效果视频◆ ◆ ◆一般方法与步骤1、首先&#xff0c;将文字内容输入到一个文本文件中。按 Ctrl/Cmd A 全选&#xff0c;按 Ctrl/Cmd C 复制以备用。2、Pr菜单&#xff1a;文件/新建/旧版标题。3、点击“滚动…

mysql临时表空间_MySQL 5.7 深度解析: 临时表空间

先来说说临时表的概念。 临时表顾名思义&#xff0c;就是临时的&#xff0c;用完销毁掉的表。 数据既可以保存在临时的文件系统上&#xff0c;也可以保存在固定的磁盘文件系统上。 临时表有下面几种&#xff1a;全局临时表这种临时表从数据库实例启动后开始生效&#xff0c;在数…

mysql 从库状态_大神教你自动发现监控mysql从库状态

导读zabbix从库如果复制有问题&#xff0c;在主库机器有问题的时候&#xff0c;切为主就会导致数据的丢失。或者主从分离的时候&#xff0c;如果从库出现延时状态的话&#xff0c;会导致前端页面展示的数据不是为最新的数据。因此&#xff0c;监控mysql从库的状态是必要的。mys…

mysql查看session对应的ip_Mysql 查看session连接数,状态 | 学步园

命令&#xff1a; showprocesslist; 如果是root帐号&#xff0c;你能看到所有用户的当前连接。如果是其它普通帐号&#xff0c;只能看到自己占用的连接。 showprocesslist;只列出前100条&#xff0c;如果想全列出请使用showfull processlist; mysql> show processlist;命令&…

mysql集群fuzhi_MySQL集群 和MySQL主从复制的不同

主从复制理论上支持无穷大的从库个数&#xff0c;实际情况下&#xff0c;受服务器带宽和读写能力的影响请参考mysql官方手册的建议&#xff1a;理论上&#xff0c;通过使用单个主服务器/多从服务器设置&#xff0c;可以通过添加更多的从服务器来扩充系统&#xff0c;直到用完网…

mysql 查询一个字段快还是一条记录快_mysql (优化)查询一条再筛选某个字段和直接查询该条的某个字段的效率比较...

查询所有&#xff0c;10000次&#xff0c;$sql "select * from mh_user where (username‘333‘) and (password‘xxx‘)";总共耗时1.1420359611511查询username字段&#xff0c;10000次。$sql "select username from mh_user where (username‘333‘) and (p…

winform mysql 工具类_C#工具类MySqlHelper,基于MySql.Data.MySqlClient封装

1 usingSystem;2 usingSystem.Collections.Generic;3 usingSystem.Linq;4 usingSystem.Text;5 usingSystem.Threading.Tasks;6 usingSystem.Data;7 usingMySql.Data.MySqlClient;8910 namespaceFly.Util.DataBase11 {12 /// 13 ///MySql数据库操作类14 /// 15 public static cl…

服务器搭建php mysql5_Windows下php5+apache+mysql5 手工搭建笔记

Windows下php5apachemysql5 手工搭建笔记更新时间&#xff1a;2011年02月15日 01:35:09 作者&#xff1a;php运行环境对于站长们或者初学者来说可以直接用一键包的方式或者直接从服务提供商处得到支持&#xff0c;不必自己手工按部就班的搭建&#xff0c;所以这篇文章是写给我…

java连接mysql封装代码_JDBC连接数据库方法的封装,以及查询数据方法的封装

(在上一篇文章中&#xff0c;我们详细的介绍了连接数据库的方法&#xff0c;以及eclipse操作数据库信息的相关方法&#xff0c;在这里我们将主要讲封装。)主要内容&#xff1a;一般的连接数据库测试把连接数据库的方法封装成一个类和测试一个简单的插入表实例查询数据实例封装查…

mysql连接字符串加密配置文件_Asp.net2.0如何加密Web.config配置文件数据库连接字符串...

在asp.net2.0中,发布网站时,加密web.config,这样可以有效保证数据库用户和密码安全,其步骤如下:①添加密钥执行:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pc "hnlaw" -exp其中"hnlaw"为密钥名称②添加web.config节点在web.config的之…

Java编程和C语言哪个更好?

学编程用哪一个编程语言好?很多人刚开始接触编程的时候都不知道自己该学哪个好&#xff0c;软件开发编程语言多达600余种&#xff0c;每种都有各自的特点和应用领域。目前&#xff0c;热门编程语言无外乎Java、C、C了&#xff0c;实际上&#xff0c;Java确实是从C语言和C语言继…

bugzilla dbd-mysql_别人写的关于在Windows下安装BugZilla的说明,不错,值得借鉴

Bugzilla Windows安装红宝书一直寻找合适的Bug Tracking System&#xff0c;网上找了很久&#xff0c;commercial的太贵&#xff0c;还有licence限制&#xff0c;远远超出我等贫民的承受范围。也曾考虑干脆自己写一个算了&#xff0c;但终究未能如愿。对Bugzilla倒是早有所闻&a…

Java程序员常犯的几类错误

1.忽视异常 相信很多小伙伴在编程的过程中经常对异常置之不理。针对初学者和有经验的 Java 程序员&#xff0c;最佳实践仍是处理它们。异常抛出通常是带有目的性的&#xff0c;因此在大多数情况下需要记录引起异常的事件。不要小看这件事&#xff0c;如果必要的话&#xff0c;…

jdk1.8 mysql_Centos 7配置JDK1.8+MySQL5.7+Tomcat 8 开发环境

工具腾讯云服务器(可通过公网ip访问)Xshell 6Xftp 61、Xshell 6 连接云服务器打开xshell很简单&#xff0c;直接上图配置好之后连接云服务器&#xff0c;之后就可以对云服务器进行操作了。2、配置JDK 1.8a、下载JDK1.8如果直接在云服务器的命令行中使用wget http://download.or…

做为一名java高级程序员,需要了解哪些岗位?

一、Java高级程序员 要想成为JAVA&#xff08;高级&#xff09;程序员也称Java高级工程师&#xff0c;肯定要学习JAVA。一般的程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA高级程序员&#xff0c;您要对JAVA做比较深入的研究。您应该多研究一下JDBC、IO包…

mysql 复制延迟诊断_新特性解读 | MySQL 8 复制延迟观测新方式,更全面更精准

转载自公众号&#xff1a;玩转MySQL&#xff0c;作者&#xff1a;洪斌一直以来 MySQL 复制延迟观测是不完善的&#xff0c;既无法观测到真实的主从延迟&#xff0c;也无法支持复杂的复制拓扑环境&#xff0c;常用的 second_behind_master 指标更多是判断是否存在回放延迟&#…