购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎

1.9 巧用数组
——好玩贪吃蛇

在程序设计中,数组可以存储一组具有相同数据类型的数据。

1. 一维数组
1)静态定义

一维数组的静态定义如下图所示。

常量表达式必须是整型常量,不能是变量,这个数值必须是已知的数值。

● 可以在定义时,对数组初始化。

● 定义并初始化时可以不指定长度。

● 在非定义时不可以整体赋值。

● 不可以在数组变量之间赋值。

● 系统不会检查下标是否有效。

● 应该将特别大的数组定义在main()函数外,如果将其定义在main()函数内,就会异常退出。

训练1-36: 定义一些一维数组,并赋值、运算、输出。

训练1-37: 输入一些整数,并将其逆序输出。

训练1-38: 现在有 n 盏灯,编号为1~ n ,开始时所有的灯都是关的,编号为1的人走过来,把编号是1的倍数的灯开关按下(开的关上,关的打开),编号为2的人把编号是2的倍数的灯开关按下,编号为3的人又把编号是3的倍数的灯开关按下……直到第 k 个人为止。

给定 n k (0< n , k ≤1000),输出哪几盏灯是开着的。

训练1-39: 输入 n 个学生的成绩(整数)并将其存入数组中,求其总成绩和平均成绩(浮点数)。

训练1-40: 输入 n 个学生的成绩并将其存入数组中,求其最低分和最高分。

2)动态定义

在程序运行过程中动态分配空间定义数组。一维数组的动态定义如下图所示。

使用new分配的数组,在使用完毕后需要使用delete释放内存空间。

注意:

● 不要使用delete释放不是new分配的内存;

● 不要使用delete释放同一个内存块两次;

● 使用new为一个实体分配内存,需要使用delete释放内存空间;

● 使用new为一个数组分配内存,需要使用delete[]释放内存空间;

● 对空指针使用delete是安全的。

训练1-41: 输入 n 个学生的成绩并将其存入动态数组 a []中,统计不及格的人数。

2. 二维数组
1)静态定义

二维数组的静态定义如下图所示。

常量表达式必须是整型常量,不能是变量,该数值必须是已知的数值。

● 可以在定义时,对数组初始化。

● 将二维数组作为参数时,可以省略第1维的长度,但必须指定第2维的长度。

2)动态定义

一个 m n 列的二维数组相当于 m 个长度为 n 的一维数组。

训练1-42: 蛇形填数,输入一个整数 n ,按照蛇形填写 n × n 的矩阵。 1kM6mNVUHLEh4vSGLuClhQ6qyVzdGAgLczc2a/oH066sNGZsBVS8v3bNcmgCXwQZ

点击中间区域
呼出菜单
上一章
目录
下一章
×