C语言第十二讲二维数组与字符数组解析PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int a[3][2];
例7-8 源程序
a[0][0] a[0][1] a[1][0] a[1][1]
01ቤተ መጻሕፍቲ ባይዱ12
a[2][0] a[2][1]
23
for(i = 0; i < 3; i++) for(j = 0; j < 2; j++) a[i][j] = i + j;
i=0 j=0 i=0 j=1 i=1 j=0
数组a 123 456 789
2、顺序赋初值
int a[3][3] = {1,2,3,4,5,6,7,8,9};
static int b[4][3] = {1,2,3,0,0,0,4,5};
数组b 123 000 450 000
C语言程序设计语言
-
11
省略行长度
对全部元素都赋了初值, int a[ ][3]={1,2,3,4,5,6,7,8,9}; 或分行赋初值时,在初值表中列出了全部行 static int b[ ][3]={{1,2,3},{},{4,5},{}}
【例 7-7】将1个3*2的矩阵存入1个3*2的二 维数组中,找出最大值以及它的行下标和 列下标,并输出该矩阵。
row col a[row][col]
记录最大值的行下标 最大值的列下标 最大值
main() { int col, i, j, row; int a[3][2];
例7-7 源程序
printf(“Enter 6 integers:\n") ;
10 -9 6 -1
printf("\n"); } row = col = 0;
32 10 -9
for(i = 0; i < 3; i++)
6 -1
for(j = 0; j < 2; j++) if(a[i][j] > a[row][col]){
max = a[1][0] = 10
row = i; col = j;
二维数组的元素在内 存中按行/列方式存放
a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1]
a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1]
C语言程序设计语言
-
10
7.2.3 二维数组的初始化
1、分行赋初值
int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; static int b[4][3] = {{1,2,3},{ },{4,5}};
a[i][j] = i + j(0≤i≤2,0≤j≤1)
int a[3][2]; a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1]
01 12 23
C语言程序设计语言
-
14
#include <stdio.h> int main(void) { int i, j;
for(i = 0; i < 3; i++) for(j = 0; j < 2; j++)
Enter 6 integers:
scanf("%d", &a[i][j]);
32
for(i = 0; i < 3; i++){ for(j = 0; j < 2; j++) printf("%4d", a[i][j]);
1、定义
类型名 数组名[行长度][列长度]
int a[3][2];
定义1个二维数组a,3行2列,6个元素
int b[5][10];
定义1个二维数组a,5 行 10 列, 50 个元素
C语言程序设计语言
-
8
先定义,后使用 数组元素的引用: 数组名[行下标] [列下标]
行下标和列下标:整型表达式 行下标的取值范围是[0,行长度-1]
第十二讲 二维数组和字符数组
主讲:谢华成
C语言程序设计语言程序设计
教学目的
熟练掌握二维数组的定义、引用、 初始化。
掌握二维数组的存储方式
借鉴一维数组程序处理方式,掌握 二维数组的显示、转置运算、最值 运算及统计问题。
C语言程序设计语言
-
2
第一部分 二维数组
❖ 二维数组的定义、引用、初始化 ❖ 二维数组的元素在内存中按什么方式存放? ❖ 求二维数组中元素的最大值和最小值 ❖ 二维数组的变换 ❖ 一维数组中相关算法在二维数组中的实现
a[i][j]:i、j的取值范围[0,N-1]
for(i = 0; i < 3; i++){ for(j = 0; j < 2; j++) printf("%4d", a[i][j]);
i=1 j=1 i=2 j=0 i=2 j=1
printf("\n");
}
return 0;
}
C语言程序设计语言
-
15
矩阵与二维数组
int a[N][N];
N是正整数
建议不要省略
数组a 123 456 789
数组b 123 000 450 000
C语言程序设计语言
-
12
7.2.4 使用二维数组编程
行下标和列下标分别做为循环变量, 通 过二重循环,遍历二维数组
通常将行下标做为外循环的循环变量
列下标 内循环
C语言程序设计语言
-
13
例7-8 生成一个矩阵并输出
定义1个 3*2 的二维数组a,数组元素的值由 下式给出,按矩阵的形式输出a。
列下标的取值范围是[0,列长度-1]
2、引用
int a[3][2]; 3 行 2 列, 6 个元素
a[0][0] a[0][1]
下标不要越界
a[1][0] a[1][1]
a[2][0] a[2][1]
C语言程序设计语言
-
9
二维数组在内存中的存放方式
int a[3][2];
3 行 2 列, 6 个元素 表示1个3行2列的矩阵
C语言程序设计语言
-
3
7.2 找出矩阵中最大值所在的位置
将1个3*2的矩阵存入1个3*2的二维数组中, 找出最大值以及它的行下标和列下标,并输出 该矩阵。
7.2.1 程序解析 7.2.2 二维数组的定义和引用 7.2.3 二维数组的初始化 7.2.4 使用二维数组编程
C语言程序设计语言
-
4
7.2.1 程序解析-求矩阵的最大值
}
printf("max = a[%d][%d] = %d\n", row, col, a[row][col]);
}
多维数组的空间想象
二维数组
一维数组: 一列长表或一个向量 二维数组: 一个表格或一个平面矩阵 三维数组: 三维空间的一个方阵
多维数组: 多维空间的一个数据列阵
C语言程序设计语言
-
7
7.2.2 二维数组的定义和引用
例7-8 源程序
a[0][0] a[0][1] a[1][0] a[1][1]
01ቤተ መጻሕፍቲ ባይዱ12
a[2][0] a[2][1]
23
for(i = 0; i < 3; i++) for(j = 0; j < 2; j++) a[i][j] = i + j;
i=0 j=0 i=0 j=1 i=1 j=0
数组a 123 456 789
2、顺序赋初值
int a[3][3] = {1,2,3,4,5,6,7,8,9};
static int b[4][3] = {1,2,3,0,0,0,4,5};
数组b 123 000 450 000
C语言程序设计语言
-
11
省略行长度
对全部元素都赋了初值, int a[ ][3]={1,2,3,4,5,6,7,8,9}; 或分行赋初值时,在初值表中列出了全部行 static int b[ ][3]={{1,2,3},{},{4,5},{}}
【例 7-7】将1个3*2的矩阵存入1个3*2的二 维数组中,找出最大值以及它的行下标和 列下标,并输出该矩阵。
row col a[row][col]
记录最大值的行下标 最大值的列下标 最大值
main() { int col, i, j, row; int a[3][2];
例7-7 源程序
printf(“Enter 6 integers:\n") ;
10 -9 6 -1
printf("\n"); } row = col = 0;
32 10 -9
for(i = 0; i < 3; i++)
6 -1
for(j = 0; j < 2; j++) if(a[i][j] > a[row][col]){
max = a[1][0] = 10
row = i; col = j;
二维数组的元素在内 存中按行/列方式存放
a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1]
a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1]
C语言程序设计语言
-
10
7.2.3 二维数组的初始化
1、分行赋初值
int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; static int b[4][3] = {{1,2,3},{ },{4,5}};
a[i][j] = i + j(0≤i≤2,0≤j≤1)
int a[3][2]; a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1]
01 12 23
C语言程序设计语言
-
14
#include <stdio.h> int main(void) { int i, j;
for(i = 0; i < 3; i++) for(j = 0; j < 2; j++)
Enter 6 integers:
scanf("%d", &a[i][j]);
32
for(i = 0; i < 3; i++){ for(j = 0; j < 2; j++) printf("%4d", a[i][j]);
1、定义
类型名 数组名[行长度][列长度]
int a[3][2];
定义1个二维数组a,3行2列,6个元素
int b[5][10];
定义1个二维数组a,5 行 10 列, 50 个元素
C语言程序设计语言
-
8
先定义,后使用 数组元素的引用: 数组名[行下标] [列下标]
行下标和列下标:整型表达式 行下标的取值范围是[0,行长度-1]
第十二讲 二维数组和字符数组
主讲:谢华成
C语言程序设计语言程序设计
教学目的
熟练掌握二维数组的定义、引用、 初始化。
掌握二维数组的存储方式
借鉴一维数组程序处理方式,掌握 二维数组的显示、转置运算、最值 运算及统计问题。
C语言程序设计语言
-
2
第一部分 二维数组
❖ 二维数组的定义、引用、初始化 ❖ 二维数组的元素在内存中按什么方式存放? ❖ 求二维数组中元素的最大值和最小值 ❖ 二维数组的变换 ❖ 一维数组中相关算法在二维数组中的实现
a[i][j]:i、j的取值范围[0,N-1]
for(i = 0; i < 3; i++){ for(j = 0; j < 2; j++) printf("%4d", a[i][j]);
i=1 j=1 i=2 j=0 i=2 j=1
printf("\n");
}
return 0;
}
C语言程序设计语言
-
15
矩阵与二维数组
int a[N][N];
N是正整数
建议不要省略
数组a 123 456 789
数组b 123 000 450 000
C语言程序设计语言
-
12
7.2.4 使用二维数组编程
行下标和列下标分别做为循环变量, 通 过二重循环,遍历二维数组
通常将行下标做为外循环的循环变量
列下标 内循环
C语言程序设计语言
-
13
例7-8 生成一个矩阵并输出
定义1个 3*2 的二维数组a,数组元素的值由 下式给出,按矩阵的形式输出a。
列下标的取值范围是[0,列长度-1]
2、引用
int a[3][2]; 3 行 2 列, 6 个元素
a[0][0] a[0][1]
下标不要越界
a[1][0] a[1][1]
a[2][0] a[2][1]
C语言程序设计语言
-
9
二维数组在内存中的存放方式
int a[3][2];
3 行 2 列, 6 个元素 表示1个3行2列的矩阵
C语言程序设计语言
-
3
7.2 找出矩阵中最大值所在的位置
将1个3*2的矩阵存入1个3*2的二维数组中, 找出最大值以及它的行下标和列下标,并输出 该矩阵。
7.2.1 程序解析 7.2.2 二维数组的定义和引用 7.2.3 二维数组的初始化 7.2.4 使用二维数组编程
C语言程序设计语言
-
4
7.2.1 程序解析-求矩阵的最大值
}
printf("max = a[%d][%d] = %d\n", row, col, a[row][col]);
}
多维数组的空间想象
二维数组
一维数组: 一列长表或一个向量 二维数组: 一个表格或一个平面矩阵 三维数组: 三维空间的一个方阵
多维数组: 多维空间的一个数据列阵
C语言程序设计语言
-
7
7.2.2 二维数组的定义和引用