◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎
在程序设计中,数组可以存储一组具有相同数据类型的数据。
一维数组的静态定义如下图所示。
常量表达式必须是整型常量,不能是变量,这个数值必须是已知的数值。
● 可以在定义时,对数组初始化。
● 定义并初始化时可以不指定长度。
● 在非定义时不可以整体赋值。
● 不可以在数组变量之间赋值。
● 系统不会检查下标是否有效。
● 应该将特别大的数组定义在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 个学生的成绩并将其存入数组中,求其最低分和最高分。
在程序运行过程中动态分配空间定义数组。一维数组的动态定义如下图所示。
使用new分配的数组,在使用完毕后需要使用delete释放内存空间。
注意:
● 不要使用delete释放不是new分配的内存;
● 不要使用delete释放同一个内存块两次;
● 使用new为一个实体分配内存,需要使用delete释放内存空间;
● 使用new为一个数组分配内存,需要使用delete[]释放内存空间;
● 对空指针使用delete是安全的。
训练1-41: 输入 n 个学生的成绩并将其存入动态数组 a []中,统计不及格的人数。
二维数组的静态定义如下图所示。
常量表达式必须是整型常量,不能是变量,该数值必须是已知的数值。
● 可以在定义时,对数组初始化。
● 将二维数组作为参数时,可以省略第1维的长度,但必须指定第2维的长度。
一个 m 行 n 列的二维数组相当于 m 个长度为 n 的一维数组。
训练1-42: 蛇形填数,输入一个整数 n ,按照蛇形填写 n × n 的矩阵。