文档介绍:本次课内容:二维数组教学目的:掌握相关概念及其定义方法,掌握引用方法和初始化方法,理解数组地址,了解多维数组。重点:二维数组概念、定义方法、初始化方法和引用。难点:理解二维数组是一个一维数组,而每一个数组元素又是一个一维数组,如何用下标来确定二维数组中的元素值。预习:一维数组的定义、初始化和引用。定义: 类型标识符数组名[ 元素个数];初始化:(1) 元素定义的初值个数不足时,用零补齐。 如 static int a[ 5]={1,2,3}; (2)元素定义时赋初值,可以不指定数组个数; 如 static int a[ ]={1,2,3,4,5]; (3)静态和外部存储类型的数组不进行初始化,隐含的初值为零或空字符,自动类型数组未初始化,其值不确定。 static char ch1[5]; /*ch1[0]~ch1[4]中的值为空,即‘’*/ static int m[5]; /*m[0]~m[4]中的值为零*/ float p[5]; /*p[0]~ p[4]中的值不确定*/
一维数组举例:按学号输入5 个学生的C语言考试成绩,计算总成绩和平均成绩并输出。#include “”#define M 6void pin(int s[ ],int n);void pout(int p[ ],int m);void paver(int v[ ], int k);main(){ int a[M]={0}; pin(a,M); paver(a,M); pout(a,M);}void pin(int s[ ],int n){ int i; for (i=1;i<n;i++) scanf(“%d\n”,&s[i]);}
void pvaer(int v[ ],int n)
{ int j , vaer=0;
for ( j=1;j<n;j++)
vaer+=p[j];
printf(“aver=%d\n”,vaer/5);
}
void pout(int p[ ],itn n)
{ int j;
for ( j=1;j<n;j++)
printf(“#%d:score=%d\n”,j,p[j] );
}
一、二维数组的概念及其定义 当数组中每个元素带有两个下标时,称这样的数组为二维数组。逻辑上可以把二维数组看成是一份具有行和列的表格或一个矩阵。 二维数组的定义形式: 类型名数组名[ 常量表达式1][常量表达式2],…;如:int a[3][4] ;说明:定义了一个名为 a 的二维数组;a 数组中每个元素都是整型;a数组中共有3×4个元素;a数组的逻辑结构是一个具有3行4列的矩阵(或表格) 第0列第1 列第2列第3 列第0行 a[0][0] a[0][1] a[0][2] a[0][3]第1行 a[1][0] a[1][1] a[1][2] a[1][3]第2行 a[2][0] a[2][1] a[2][2] a[2][3]a数组中的元素在内存中占一系列连续的存储单元。
a[0][0] a[0][1] a[0][2] a[0][3]
a[1][0] a[1][1] a[1][2] a[1][3]
a[2][0] a[2][1] a[2][2] a[