一、学习目标
- 了解二维数组的使用方法
- 了解循环嵌套的使用方法
目录
第一篇:(一)脱离学习误区
第二篇:(二)C语言没那么难简单开发带你了解流程
第三篇:(三)轻轻松松理解第一个C语言程序
第四篇:(四)C语言的基本数据类型及变量
第五篇:(五)C语言的变量、常量及运算
第六篇:(六)轻轻松松了解C语言的逻辑运算
第七篇:(七)C语言的循环分分钟上手
第八篇:(八)了解基本数组还不是那么简单
第十篇:(十)C语言的指针原来是这样
欢迎大家关注公众号,公众号每满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数组的下标,这时将会获取所有的二维数组值。
结果如下:
四、总结
通过以上描述与讲解,我们了解了以下几点内容:
- 了解了二维数组的取值
- 了解循环嵌套的使用方法
- 了解综合使用循环嵌套获取二维数组的值