内容正文:
项目五 数组
1
C语言程序设计基础
知识目标
了解数组
掌握一维数组的使用方法
掌握二维数组的使用方法
掌握字符数组与字符串的使用方法
掌握数组的应用
技能目标
学会一维数组的使用方法
学会二维数组的使用方法
学会字符数组的使用方法
学会字符串的使用方法
思政目标
提高德、智、体、美、劳全面发展的意识
重视思想政治素质的培养
2
任务3
——二维数组的定义、初始化与引用
3
二维数组定义的语法格式:
类型说明符 数组名[常量表达式1][常量表达式2];
例如:
int a[2][3]; 表示定义a为二维数组名, 内有6个整数类型的数据元素。
数组——基础篇
3.1二维数组的定义
a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2]
4
为了方便理解,我们可以把二维数组看作是一种特殊的一维数组,即:一维数组中的数据元素也是一个一维数组。
所以二维数组int a[2][3],可以看作是一个2行3列的行列表。
数组——基础篇
5
1.按数组元素顺序逐个赋初值,这与一维数组初始化语法格式相同。
语法格式:
类型说明符 数组名[常量表达式1(行数)][常量表达式2(列数)]={常量表列};
(1)对二维数组a中所有元素赋初值。
(2)对二维数组a中部分元素赋初值。
(3)对二维数组a赋初值时,也可以不指定二维数组的第一维长度,但第二维长度不论什么情况都不能省。
int a[ ][3]={1,2,3,4,5,6};
数组——基础篇
3.2二维数组的初始化
6
2.分行给二维数组元素赋初值。
语法格式:
类型说明符 数组名[常量表达式1(行数)][常量表达式2(列数)]={{常量表列1},……};
(1)对二维数组a中所有元素赋初值。
(2)对二维数组a中部分元素赋初值。
(3)对二维数组a中的每一行的元素都赋初值时(即二维数组行数与常量表列数相等),可以不指定二维数组第一维长度。
int a[ ][6]={{1,2},{3,4,5},{ },{6}};
数组——基础篇
3.2二维数组的初始化
7
二维数组元素的引用与一维数组一样,也是采用“数组名+下标”的方式,引用二维数组的元素采用行和列双下标。
二维数组的数组元素引用形式:
数组名[下标1][下标2]
数组——基础篇
3.3二维数组的引用
8
例如:
(1)若已定义int a[2][3]; 给二维数组a中的第一个元素赋值1,给数组a中的最后一个元素赋值2。
二维数组a的第一个元素引用为a[0][0], 则赋值语句为 a[0][0]=1;
二维数组a的最后一个元素引用为a[1][2], 则赋值语句为 a[1][2]=2;
数组——基础篇
9
(2)若已定义并初始化int a[2][3]={{1,2},{3,4}}; 输出显示数组a中所有元素。
若要对二维数组的连续多个元素引用或操作,可使用二重循环实现。
则输出语句为 for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{ printf(“%4d”,a[i][j]); }
}
数组——基础篇
10
【例5-3】已知3位同学的学号分别是:2022111,2022112,2022113,他们的6门功课“大学语文”、“高等数学”、“C语言程序设计”、“体育”、“外语”、“思想政治与道德修养”成绩分别为{86,83,85,93,80,90},{81,66,78,98,60,88},{90,80,85,65,82,81},输出显示所有学生学号及各门功课成绩。
数组——基础篇
11
【解题思路】
1. 以题意分析,有3位同学,若每一位同学的数据占用1行,那么需要3行,要显示出学生的“学号”,“大学语文”、“高等数学”、“C语言程序设计”、“体育”、“外语”、“思想政治与道德修养”6门成绩,共7项,那么需要7列。所以,需要定义二维数组int a[3][7]并对其初始化赋初值。
2. 定义循环变量i,j。
3. 在输出显示数组元素数据前,先打印输出表头“学号”、“大学语文”、“高等数学”、“C语言程序设计”、“体育”、“外语”、“思想政治与道德修养”,需要注意加入适当空格以便对齐下方的数组数据(本例中每列表头+空格共占14个字节空间)。(也可以使用制表符’\t’对齐)
4. 使用双重循环for(i=0;i<3;i++) for(j=0;j<7;j++) 以格式“%-14d”输出显示二维数组数据。
数组——基础篇
12
【程序代码】
数组——基础篇
13
【运行结果】
数组——基础篇
14
$$