
1、数组的优势——秩序的体现
2、一次录入,多次使用——传授知识(教师的职业精神)


所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。比如 numbers是一个数组的化,那么numbers[1]、numbers[2]、...、numbers[100]可以来代表数组中的么一个元素,也可以通过下标索引来访问数组元素。数组是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。

示例1:输出数组
1、下面伪代码输出的结果是:
a[5]={1,2,3,4,5}
outputa[1]
outputa[2]
outputa[3+1]
outputa[5]
解析:数组名为a,数组长度为5,数组元素为a[1]=1,a[2]=2,a[3]=3,a[4]=4,a[5]=5。
数组下标可以是常量、表达式,故输出a[1]、a[2]、a[4]、a[5],即1,2,4,5。

示例2:输出数组元素的均值
下列伪代码输出的结果是:
a[5]={1,2,3,4,5}
s=0
fori=1 to 5
s=s+a[i]
endfor
avg=s/5
output avg
解析:for循环,5圈,将数组元素累加到s,故s=1+2+3+4+5=15。执行avg=s/5,得3,输出3。



示例3:高于平均数个数问题
求:5个整数中大于平均数的个数,写出伪代码和画出流程图。
解析:
(1)求5个数平均值,可以转5圈进行累加求和
(2)哪些数大于高于平均值呢?
需要再次使用这5个数,依次和平均值比较
(3)需用到数组,一次输入,多次使用。
伪代码如下:
a[5]=0,s=0,num=0
fori=1 to 5 // 累加求和求均值
input a[i]
s=s+a[i]
endfor
avg=s/5
fori=1 to 5 // 统计高于均值个数
if a[i]>avg then
num=num+1
endif
endfor
outputnum
流程图如下:输入1,2,3,4,5,输出2

示例4:体操评分问题
10个评委给运动员打分,去掉一个最高分,去掉一个最低分,求选手最终得分(去掉最高分最低分后的平均分)。
解析:
(1)循环10圈,求出总分
(2)求最高分、最低分(打擂台算法)。
(3)总分中减去最高分和最低分。
(4)求去掉最高分和最低分的平均分。

伪代码如下:
a[10]=0,s=0
fori=1 to 10 // 输入且累加求和
input a[i]
s=s+a[i]
endfor
max=_________ // 求最大最小值
min=a[1]
fori=2 to 10
if ________________ then max=a[i]
if a[i]<min then min=a[i]
endfor
s = s- max –min // 计算且输出均值
avg =s / _____
outputavg
第一个空填a[1],第二个空填a[i]>max,第三个空填8。
流程图如下:
