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

一、学习目标

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

目录

C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言。
第一篇:(一)脱离学习误区
第二篇:(二)C语言没那么难简单开发带你了解流程
第三篇:(三)轻轻松松理解第一个C语言程序
第四篇:(四)C语言的基本数据类型及变量
第五篇:(五)C语言的变量、常量及运算
第六篇:(六)轻轻松松了解C语言的逻辑运算
第七篇:(七)C语言的循环分分钟上手
第八篇:(八)了解基本数组还不是那么简单
第十篇:(十)C语言的指针原来是这样
第十一篇:(十一)C语言自定义函数真的很简单
第十二篇:(十二)原来结构体是这么回事
第十三篇:(十三)socket服务端编写

C语言新手的100个报错解法

欢迎大家关注公众号,公众号每满1024及1024倍数则会抽奖赠送机械键盘一份+IT书籍2份哟~
在这里插入图片描述

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

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

一维数组可以当成是一排的数据,在这里我使用排队作为举例,在排队时只有一横排,没有纵列我们可以当成一维数组;这个时候队伍是一条线,只有横排的同学,例如第一个名叫小明、第二个叫小黄、第三个叫小绿一共有十个同学。
在这里插入图片描述
在数组中,是从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]

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

#include<stdio.h>
void main() {int a[2][5]={1,2,3,4,5,6,7,8,9,10};printf("a[0][1]的值是%d\n",a[0][1]);printf("a[0][2]的值是%d\n",a[0][2]);printf("a[1][0]的值是%d\n",a[1][0]);
}

结果如下:
在这里插入图片描述
二维数组也可以进行值的更改,如下代码:

#include<stdio.h>
void main() {int a[2][5]={1,2,3,4,5,6,7,8,9,10};printf("a[0][1]的值是%d\n",a[0][1]);a[0][1]=1111; printf("a[0][1]更改后的值是%d\n",a[0][1]);
}

运行结果为:
在这里插入图片描述

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

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

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

#include<stdio.h>
void main()
{int i,j; for(i=0;i<5;i++) {for(j=0;j<5;j++) {printf("外面一个循环的i的值是%d,里面for循环j的值是%d\n",i,j); }printf("\n");}
}

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

运行结果如下:
在这里插入图片描述
3.2 了解循环嵌套与二维数组的综合使用
上一小节中,我们得知循环嵌套会导致外部循环执行一次,内部循环会执行多次的情况。得知了这个特性后,我们可以使用循环嵌套获取二维数组的所有值。

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

#include<stdio.h>
void 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++){printf("array[%d][%d]的值是%d\n",i,j,a[i][j]);}}
}

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

结果如下:
在这里插入图片描述

四、总结

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

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

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

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

相关文章

LRU算法

1 LRU算法 LRU(Least recently used,最近最少使用)根据数据的历史访问记录来进行淘汰数据,思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 2 具体实现过程 新数据插入到链表头部; 每当缓存命中(即缓存数据被访问),则将数据移到链表头部; 当链表满…

Scala-2.13.0 安装及配置

Scala 简介 Scala 是一门多范式&#xff08;multi-paradigm&#xff09;的编程语言&#xff0c;设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在Java虚拟机上&#xff0c;并兼容现有的Java程序。 Scala 源代码被编译成Java字节码&#xff0c;所以它可以运…

检测python进程是否存活

crontab -e */3 * * * * /data/log_realtime/check.sh > /data/log_realtime/check.log 2>&1 1 0 1 * * /data/jx3log_import_realtime/shutdown.sh 说明&#xff1a;每3分钟检查一次进程是否存在&#xff0c;每个月1号0点1分杀掉进程&#xff0c;重启 check.sh cd …

中科大镜像源_JETPACK4.4安装软件和备份镜像的方法介绍

一、使用SDK Manager的文件夹安装Jetson软件(以NX为例)当JETPACK安装出现错误的时候&#xff0c;可以尝试下面的安装办法&#xff0c;前提是JETPACK4.4完整安装(即本文第三节的下载已经完成)&#xff0c;并且选择JETSON NX的相关的下载已经完成。安装步骤&#xff1a;1、$cd /n…

站在前人的肩膀上重新透视C# SpanT数据结构

先谈一下我对Span的看法&#xff0c; Span是指向任意连续内存空间的类型安全、内存安全的视图&#xff0c;可操作的滑动窗口。Span和Memory都是包装了可以在pipeline上使用的结构化数据的内存缓冲器,他们被设计用于在pipeline中高效传递数据。定语解读这里面许多定语&#xff0…

集合学习

List集合&#xff1a;ArrayList集合基于动态数组结构&#xff0c;查询优&#xff0c;LinkedList 基于链表结构 数据移动优。是一个有序的队列集合 set集合&#xff1a;HashSet和TreeSet 。是一个无序不重复集合 Map集合&#xff1a;HashMap和TreeMap。是一个KEY-VALUE映射的集合…

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

一、学习目标 了解指针的概念了解指针的使用方法了解双重指针 目录 C语言真的很难吗&#xff1f;那是你没看这张图&#xff0c;化整为零轻松学习C语言。 第一篇&#xff1a;&#xff08;一&#xff09;脱离学习误区 第二篇&#xff1a;&#xff08;二&#xff09;C语言没那…

T-SQL编程基础之一:变量与基本语句

一个标准的计算机语言,大概要提供的必要主要功能是:变量说明、分支判断、循环和输入输出结果。T-SQL也一样,具有这些功能,只不过T-SQL的输入和输出不是界面,而是表。 完全精确描述一个计算机语言,大概要很厚的书才能做到,好在目前这些书籍的发行也很多,许多书描述的都…

Java之volatile如何保证可见性和指令重排序

1 我们先了解CPU缓存 CPU缓存为了解决CPU运算速度与内存读写速度不匹配的问题&#xff0c;因为CPU运算速度要比内存读写速度快得多 一次主内存的访问通常在几十到几百个时钟周期一次L1高速缓存的读写只需要1~2个时钟周期一次L2高速缓存的读写也只需要数十个时钟周期 CPU大多数…

bigpipe提升网站响应速度

2019独角兽企业重金招聘Python工程师标准>>> 主要思想就是通过异步 发起一次请求&#xff0c;后端不关闭输出流&#xff0c;多个线程处理各自任务&#xff0c;然后分别发送到客户端。 https://github.com/4rnold/Demo-Project/tree/master/bigpipe-demohttps://gith…

mysql 添加用户_mysql创建用户与授权

一、创建用户CREATE USER usernamehost IDENTIFIED BY password;说明username&#xff1a;你将创建的用户名host&#xff1a;指定该用户在哪个主机上可以登陆&#xff0c;如果是本地用户可用localhost&#xff0c;如果想让该用户可以从任意远程主机登陆&#xff0c;可以使用通配…

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

一、学习目标 了解C语言的自定义函数的使用方法了解C语言自定义函数的传参了解C语言自定义函数的返回值 目录 C语言真的很难吗&#xff1f;那是你没看这张图&#xff0c;化整为零轻松学习C语言。 第一篇&#xff1a;&#xff08;一&#xff09;脱离学习误区 第二篇&#xf…

T-SQL编程基础之二:条件选择、循环编程

1. 条件判断以及GOTO语句 条件判断是计算机语言的重要功能,在T-SQL中,条件判断的语句是: if 条件 … else … 或者是: if 条件 … 注意写法和C类似,但条件描述不使用()也可以。如果是在一个条件里执行多条语句,则要构造复合语句,复合语句是在BEGIN…EDN中构造…

**【ci框架】精通CodeIgniter框架

http://blog.csdn.net/yanhui_wei/article/details/25803945 一、大纲 [php] view plaincopy1、codeigniter框架的授课内容安排 2、codeigniter框架的简介 |-----关于框架的概念 |-----使用CI框架的好处 |-----为什么选择CI框架 3、codeigniter框架…

AspNetCore开源中间件-VueRouterHistory

前言用过VueRouter路由组件的应该都知道&#xff0c;VueRouter有hash和history两种模式。hash模式会在url中插入#&#xff0c;history模式下url则看上去更加简洁美观。如果想要支持history模式则必须要后端服务进行配合。常用后端服务器配置方式请参考 后端配置例子后端配置例子…

T-SQL编程基础之三:游标(Cursor)编程

SQL是一种面向集合操作的语言,大多情况下,一个SQL语句将会操作数据库表里的很多数据,基本上,一个数据库的程序员脑子里应该想的是如何整体操作一个表或者是几个表。 但也有一些情况下,试图整表操作是不现实的,需要一行一行处理数据,这种情况下,SQL语言提供了所谓游标的…

《假如编程是魔法之零基础看得懂的Python入门教程 》——(一)既然你选择了这系列教程那么我就要让你听得懂

一、前言 几个月前编写了一份python语言入门的博文&#xff0c;近期重新审阅了一遍发现编写的质量太过随意&#xff0c;可能对于一部分人并不是非常友好&#xff0c;故此重新编写Python语言的零基础教程。 本篇教程将会尽量把一些专业术语给读者讲解清楚&#xff0c;并且让读…

centos 7下安装mysql_Centos7下安装MySQL5.7(数据库的最全安装方法)

Centos7下使用yum安装mysql数据库首先Centox7已经不支持mysql&#xff0c;因为收费了你懂得&#xff0c;所以内部集成了mariadb&#xff0c;而安装mysql的话会和mariadb的文件冲突&#xff0c;所以需要先卸载掉mariadb。由于确定使用mysql&#xff0c;那只有卸载mariadb了。一、…

环形队列

在网上看到一篇比较好的介绍队列的文章&#xff0c;地址为&#xff1a;http://www.cnblogs.com/kubixuesheng/p/4104802.html 特此感谢原创作者&#xff0c;以下均为摘抄。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1、…

HTTP1.0、HTTP1.1 、SPDY、HTTP2.0之演变过程和优化

一、协议的演变过程和时间 HTTP1.0(1996年) -> HTTP1.1(1999年) -> SPDY(2012年google提出了SPDY的方案) -> HTTP2.0(2013年8月进行首次合作共事性测试) 二、影响一个HTTP网络请求的因素 主要有两个:带宽和延迟 1)带宽:网络基础建设已经使得带宽得到极大的提升…