课程首页 › 第4部分 › 第69课

第69课 二维矩阵

第4部分 点、线、面、立体的组合 · 数组· 知识点:二维数组

二维矩阵(二维数组)

什么是九宫数独呢,它有什么规则呢?

水平方向分为九横行,竖直方向分为九纵列,将整个盘面分成为81个小方格。要求每横行九个格子中,包含1~9九个数字;每纵列九个格子中,包含1~9九个数字;每个小九宫格的九个格子中,也必须包含1~9九个数字。

这是二维数组

声明(即定义)一个二维数组,并将它输出。

插图

运行程序:

一维数组配套一层循环,二维数组配套两层循环。

●当循环i=0时,输出了二维数组第一行。

●当循环i=1时,输出了二维数组第二行。

●当循环i=2时,输出了二维数组第三行。

●内循环j表示第几列,下标都是从0开始。

划重点——声明二维数组

(1)数据类型数组名[行数][列数]→int arr[9][8]

(2)数据类型数组名[行数][列数]={{数据1,数据2…},{数据a,数据b…}}

(3)数据类型数组名[行数][列数]={数据1,数据2,数据3,数据4…}

尝试各种声明数组的方法,看看有什么不一样。

任务来了,用1~9九个数字输入一个九宫格数组,使得数组横竖和斜线之和都相等。

插图

运行程序:

输入完成!

同样使用了两层循环:

(1)外层循环先确定行。

for(int i=0;i<3;i++){

(2)内层循环在确定列。

for(int j=0;j<3;j++){

(3)最后确定九宫格的格子。

arr[i][j]

敲黑板

一维数组像这样:

插图

二维数组像这样:

插图
插图

巩固练习

(1)在C++中,如何访问一个二维数组的第4行第5列元素?()

A.arr(3, 4);

B.arr[3, 4];

C.arr[3][4];

D.arr(3)(4);

(2)在C++中,如何创建一个3x3的单位矩阵(对角线元素为1,其余为0)?()

A.int arr[3][3]={{1, 0, 0},{0, 1, 0},{0, 1, 0}; B.int arr[3][3]={1, 0, 0, 0, 1, 0, 0, 0, 1}; C.int arr[3][3];

D.int arr[3][3]={0, 1, 0, 0, 1, 0, 0, 1, 0};(3)编写一个C++程序,分别输入班级中所有同学的数学、语文、英语的成绩,计算并输出班级的

数学、语文、英语的平均分。

①第一行输入班级人数。

②然后按照如下格式输入成绩。

插图

样例输入:

样例输出: