内容正文:
第7章 数组
7.1一维数组
7.2二维数组
7.3多维数组
7.4字符串与字符数组
7.6数组作为函数参数
7.5字符串数组
大学C/C++语言程序设计程序设计 第7章 数组
1-12章幻灯片45分钟 13-27章45分钟
7.3 多维 数 组
1、多维数组的定义与存储
多维数组的一般说明形式为:
类型名 数组名 [常量表达式1][ 常量表达式2] ,…;
和一维数组、二维数组一样,只能对数组的各个元素进行操作,数组元素也是由下标来区分的。
/50
大学C/C++语言程序设计程序设计 第7章 数组
int a[2][3][4];
定义了一个三维数组,存储结构如下图所示。可以把它理解为具有两个(层)3行4列的二维数组组成。
/50
a[0][1][2]
a[0][1][3]
a[0][2][0]
a[0][2][1]
a[0][2][2]
a[0][2][3]
a[0][0][0]
a[0][0][1]
a[0][0][2]
a[0][0][3]
a[0][1][0]
a[0][1][1]
a[1][0][0]
a[1][0][1]
a[1][0][2]
a[1][0][3]
a[1][1][0]
a[1][1][1]
a[1][1][2]
a[1][1][3]
a[1][2][0]
a[1][2][1]
a[1][2][2]
a[1][2][3]
大学C/C++语言程序设计程序设计 第7章 数组
2、多维数组的初始化
多维数组的初始化和二维数组一样,遵守同样的规则。如果给出全部元素的初值,第一维的下标个数可以不用显示说明。例如:
int a[ ][2][3]={1,2,3,4,5,6,7,8,9,10,11,12};
多维数组的初始化可以按第一维下标进行分组,使用括号将每一组数据括起来。例如:
int a[ ][2][3]={{1,2,3,4,5,6},{7,8,9,10,11,12}};
也可以写为:
int a[2][2][3]={{1,2,3,4,5,6},{7,8,9,10,11,12}};
但是,不能写成:
int a[2][2][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
/*编译通不过*/
如果写成:
int a[ ][2][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};/*结果不对*/
/50
大学C/C++语言程序设计程序设计 第7章 数组
例:一个三维数组的赋值与输出
程序如下:
#include<stdio.h>
main()
{
int i,j,k,a[][2][3]={1,2,3,4,5,6,7,8,9,10,11,12};
for(i=0;i<2;i++)
{ for(j=0;j<2;j++)
{ for(k=0;k<3;k++)
printf("%3d",a[i][j][k]);
}
printf("
");
}
}
输出结果为: 1 2 3 4 5 6
7 8 9 10 11 12
/50
大学C/C++语言程序设计程序设计 第7章 数组
数组实验2----实验内容
1.编程实现: 求int a[3][3]={1,2,3,4,5,6,7,8,9}的转置矩阵, 要求将转置矩阵放在原数组中(沿主对角线将对称位置互换元素即可)。
2.编程实现:有4×4矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,有下列左侧原矩阵:
1 2 3 4 1 0 0 0
6 7 8 输出矩阵为: 7 6 0 0
9 10 11 12 12 17 11 0
13 14 15 16 17 22 27 16
3.编写程序。任意输入一个数,并插入一个递增的数组中,使数组还是保持递增的顺序。比如:a[11]={2, 4,7,9,13,15,20, 22, 25, 36},输入数18,原数组变成a[11] = {2