(
课件网) 第10课 遍历列表 ———一维列表——— 问题: 输入50个学生的某门课程的成绩,打印出低于平均分的学生序号与成绩。 导入新课 一维列表的定义 当列表中每个元素只带有一个下标时,我们称这样的列表为一维列表。 列表的定义格式如下: 类型标识符 列表名[常量表达式] 说明: ①列表名的命名规则与变量名的命名规则一致。 ②常量表达式表示列表元素的个数。可以是常量和符号常量,但不能是变量。 例如: int a[10]; //列表a定义是合法的 int b[n]; //列表b定义是非法的 一维列表的定义 int a[10] 其中,a是一维列表的列表名,该列表有10个元素,依次表示为:a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]。需要注意的是:a[10]不属于该列表的空间范围。当在说明部分定义了一个列表变量之后,C++编译程序为所定义的列表在内存空间开辟一串连续的存储单元,每个列表第一个元素的下标都是0,因此第一个元素为第0个列表元素。例如:上例中的a列表在内存的存储如表所示: 一维列表的引用 通过给出的列表名称和这个元素在列表中的位置编号(即下标),程序可以引用这个列表中的任何一个元素。 一维列表元素的引用格式: 列表名[下标] 例如:若i、j都是int型变量,则 a[5] a[i+j] a[i++] 都是合法的元素。 一维列表的引用 说明: (1)下标可以是任意值为整型的表达式,该表达式里可以包含变量和函数调用。引用时,下标值应在列表定义的下标值范围内。 (2)列表的精妙在于下标可以是变量,通过对下标变量值的灵活控制,达到灵活处理列表元素的目的。 (3)C++语言只能逐个引用列表元素,而不能一次引用整个列表。 (4)列表元素可以像同类型的普通变量那样使用,对其进行赋值和运算的操作,和普通变量完全相同。 例如: c[10]=34;实现了给c[10]赋值为34。 一维列表的初始化 列表的初始化可以在定义时一并完成。 格式:类型标识符 列表名[常量表达式]={值1,值2,…} 例如: int a[5]={1,2,3,4,5} 说明: (1)在初值列表中可以写出全部列表元素的值,也可以写出部分。 例如:int x[10]={0,1,2,3,4}; 该方法仅对列表的前5个元素依次进行初始化,其余值为0。 (2)对列表元素全部初始化为0,可以简写为:{}。 例如:int a[5]={}; 将列表a的5个元素都初始化为0。 一维列表的初始化 一维列表的初始化 【说明】 程序1、程序2和程序3的区别在于列表定义在int main()之外与之内,程序1中列表定义放在int main()之外,其初始值是0值。程序2中列表定义放在int main()之内,其初始值是随机的。程序2中列表定义放在int main()之内,只给a[0]、a[1]赋初值,但后面的a[2]~a[4]元素自动赋0值。 列表的越界 C++语言规定,使用列表时,要注意: (1)、列表元素的下标值为正整数。 (2)、在定义元素个数的下标范围内使用。 然而,当在程序中把下标写成负数、大于列表元素的个数时,程序编译的时候是不会出错的。例如: int a[10]; a[-3]=5; a[20]=15; a[10]=20; int k=a[30] 这些语句的语法是正确的,能够通过程序的编译。然而,它们要访问的列表元素并不在列表的存储空间的,这种现象叫列表越界。例如下面程序 列表的越界 #include
using namespace std; int main() { int a[5]; for (int i=0;i<=10;i++) { a[i]=i; cout<