资源描述:
《[其它课程]程序设计与问题求解 i》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章数组与结构体类型2011.9本章主要内容一维数组定义与初始化二维数组定义与初始化字符型数组与字符串数组与函数结构体类型枚举类型2【问题】某学校组织歌手大赛,聘请了N名评委为参赛选手打分,评分原则是去掉一个最高分和一个最低分,取剩下评分的平均值作为该选手的最后得分。评委给出的评分范围为[0..10],可以是小数。假设评委的评分由键盘输入(作为依据需要保存),要求输出参赛选手的最终得分。【关键】N名评委的打分用什么保存?【想法】N个变量存放N名评委的打分,找出最高分和最低分,统计剩下评分的平均值。【算法】输入:N个评分(小数)输出:除最高
2、分和最低分外的平均值歌手大赛1.在N个变量中扫描一遍,找到最小值和最大值,并计算评分的总和sum;2.平均分=(sum-最小值-最大值)/(N-2);3.返回平均分;3数据类型基本类型:整型、实型、字符型、布尔型构造类型:由基本类型数据按一定规则组成的,包括数组、枚举、结构体、共用体数组具有相同数据类型的变量集合,这些变量名称相同,下标不同,称为数组元素有一个下标——一维数组有两个下标——二维数组有多个下标——多维数组数组4一维数组的定义格式类型说明符数组名[常量表达式]说明数组名命名规则和变量名相同数组名后用方括弧括起来的常量表达式表示数
3、组元素的个数,必须是整型常量一维数组5inta[10];//声明数组a,数组元素的类型为整型,共有10个数组元素charch[8];//声明数组ch,数组元素的类型为字符型,共有8个数组元素doubleb[5];//声明数组b,数组元素的类型为双精度型,共有5个数组元素数组长度必须是一个固定的值,声明数组时数组长度不能是变量intn=10;inta[n];constintN=10;inta[N];一维数组一维数组的定义×√6一维数组的存储:连续的存储单元。数组三要素:1.数组名:数组的起始地址2.基类型:数组元素的数据类型3.数组长度:数组
4、元素的个数……数组名数组长度数组元素的存储单元数一维数组一维数组的定义7数组三要素:1.数组的起始地址是a2.数组元素的数据类型是整型3.数组元素的个数是10……数组名a元素个数10每个元素占4个字节一维数组一维数组的定义inta[10];//声明一个int型数组8例:成长的记录:输入、输出从小到大的身高。算法分析:1.输入从小到大的身高,保存在数组height[N]中。2.输出从小到大的身高。一维数组constintN=18;doubleheight[N];cin>>height;cout<5、参加数据处理,参加处理的只能是数组中的元素变量。9【语义】引用该下标对应的数组元素。数组下标的取值范围是[0,数组长度-1]一维数组一维数组元素的引用引用数组元素使用数组名和该元素在数组中的下标。数组变量名[整型常量表达式]数组下标下标不要超出范围,否则会出现意想不到的错误。10inta[10];//声明一个int型数组下标:0123456789a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]地址:&a[0]&a[1]&a[2]&a[3]&a[4]&a[5]&a[6]&a[7]&a[8]&a[9]元素值:数组
6、元素具有变量的基本属性变量名:a[i]地 址:&a[i]变量值:a[i]类 型:int一维数组一维数组元素的引用11inta[10]={0,1,2,3,4,5,6,7,8,9};inta[10]={0,1,2,3,4};inta[]={0,1,2,3,4};一维数组的初始化定义方法不一样,都完成什么功能?12定义数组时顺序对各元素赋以初值例:intarray[10]={0,1,2,3,4,5,6,7,8,9};全部元素赋初值时,可以不指定数组长度例:intarray[5]={0,1,2,3,4};也可以写成intarray[]={0,1,2
7、,3,4};可以只给一部分元素赋值。例:intarray[10]={0,1,2,3,4};前面5个元素赋初值,后5个元素值为0。当初值个数少于数组元素个数时,多的元素被赋予0值。一维数组的初始化13例:成长的记录:输入、输出从小到大的身高。算法分析:1.输入从小到大的身高,保存在数组height[N]中。2.输出从小到大的身高。一维数组14//成长的记录:输入输出从小到大的身高。#includevoidmain(){constintN=20;inti;doubleheight[N];for(i=0;i8、cout<<"请输入身高:";cin>>height[i];}for(i=0;i