其它课程程序设计与问题求解.pptx
《其它课程程序设计与问题求解.pptx》由会员分享,可在线阅读,更多相关《其它课程程序设计与问题求解.pptx(90页珍藏版)》请在咨信网上搜索。
1、程序设计与问题求解I1本章主要内容本章主要内容一维数组定义与初始化一维数组定义与初始化二维数组定义与初始化二维数组定义与初始化字符型数组与字符串字符型数组与字符串数组与函数数组与函数结构体类型结构体类型枚举类型枚举类型程序设计与问题求解I2【问问题题】某某学学校校组组织织歌歌手手大大赛赛,聘聘请请了了N名名评评委委为为参参赛赛选选手手打打分分,评评分分原原则则是是去去掉掉一一个个最最高高分分和和一一个个最最低低分分,取取剩剩下下评评分分的的平平均均值值作作为为该该选选手手的的最最后后得得分分。评评委委给给出出的的评评分分范范围围为为0.10,可可以以是是小小数数。假假设设评评委委的的评评分分由
2、由键盘输入(作为依据需要保存)键盘输入(作为依据需要保存),要求输出参赛选手的最终得分。,要求输出参赛选手的最终得分。【关键】【关键】N名评委的打分用什么保存?名评委的打分用什么保存?【想想法法】N个个变变量量存存放放N名名评评委委的的打打分分,找找出出最最高高分分和和最最低低分分,统统计计剩剩下下评分的平均值。评分的平均值。【算法算法】输入:输入:N个评分(小数)个评分(小数)输出:除输出:除最高分和最低分外的平均值最高分和最低分外的平均值歌手大赛歌手大赛1.在在N个个变变量量中中扫扫描描一一遍遍,找找到到最最小小值值和和最最大大值值,并计算评分的总和并计算评分的总和sum;2.平均分平均分
3、(sum-最小值最小值-最大值最大值)/(N-2);3.返回平均分;返回平均分;程序设计与问题求解I3数据类型数据类型u基本类型:整型、实型、字符型、布尔型基本类型:整型、实型、字符型、布尔型u构造类型:构造类型:l由基本类型数据按一定规则组成的,包括数组、枚由基本类型数据按一定规则组成的,包括数组、枚举、结构体、共用体举、结构体、共用体数组数组u具有具有相同数据类型相同数据类型的的变量集合,变量集合,这些变量名这些变量名称相同,下标不同,称为称相同,下标不同,称为数组元素数组元素u有一个下标有一个下标一维数组一维数组u有两个下标有两个下标二维数组二维数组u有多个下标有多个下标多维数组多维数组
4、数组数组程序设计与问题求解I4一维数组的定义格式一维数组的定义格式u类型说明符类型说明符 数组名数组名常量常量表达式表达式说明说明u数组名命名规则和变量名相同数组名命名规则和变量名相同u数组名后用方括弧括起来的常量表达式表示数组名后用方括弧括起来的常量表达式表示数数组元素的个数组元素的个数,必须是,必须是整型常量整型常量一维数组一维数组程序设计与问题求解I5int a10;/声明数组声明数组a,数组元素的类型为整型,共有,数组元素的类型为整型,共有10个数组元素个数组元素char ch8;/声明数组声明数组ch,数组元素的类型为字符型,共有,数组元素的类型为字符型,共有8个数组元素个数组元素d
5、ouble b5;/声明数组声明数组b,数组元素的类型为双精度型,共有,数组元素的类型为双精度型,共有5个数组元素个数组元素数组长度必须是一个固定的值,声明数组时数组长度必须是一个固定的值,声明数组时数组长度不能是变量数组长度不能是变量 int n=10;int an;const int N=10;int aN;一维数组一维数组一维数组的定义一维数组的定义程序设计与问题求解I6一维数组的存储:连续的存储单元。一维数组的存储:连续的存储单元。数组三要素:数组三要素:1.数组名:数组的起始地址数组名:数组的起始地址2.基类型:数组元素的数据类型基类型:数组元素的数据类型3.数组长度:数组元素的个数
6、数组长度:数组元素的个数 数组名数组名 数组长度数组长度数组元素的存储单元数数组元素的存储单元数一维数组一维数组一维数组的定义一维数组的定义程序设计与问题求解I7数组三要素:数组三要素:1.数组的起始地址是数组的起始地址是a2.数组元素的数据类型是整型数组元素的数据类型是整型3.数组元素的个数是数组元素的个数是10 数组名数组名a 元素个数元素个数10每个元素占每个元素占4个字节个字节一维数组一维数组一维数组的定义一维数组的定义int a10;/声明一个声明一个int型数组型数组程序设计与问题求解I8例:成长的记录:输入、输出从小到大的身高。例:成长的记录:输入、输出从小到大的身高。算法分析:
7、算法分析:1.输入从小到大的身高,保存在数组输入从小到大的身高,保存在数组heightN中。中。2.输出从小到大的身高。输出从小到大的身高。一维数组一维数组const int N=18;double heightN;cinheight;coutheight;C/C+语言中,数组整体不能参加数据处理,参加语言中,数组整体不能参加数据处理,参加处理的只能是数组中的元素变量。处理的只能是数组中的元素变量。程序设计与问题求解I9【语义语义】引用该下标对应的数组元素。引用该下标对应的数组元素。数组下标的取值范围是数组下标的取值范围是 0,0,数组长度数组长度1 1 一维数组一维数组一维数组元素的引用一维
8、数组元素的引用 引用数组元素使用数组名和该元素在数组引用数组元素使用数组名和该元素在数组中的下标。中的下标。数组变量名数组变量名整型常量表达式整型常量表达式 数组下标数组下标下标不要超出范围,否则会出现意想不到的错误。下标不要超出范围,否则会出现意想不到的错误。程序设计与问题求解I10int a10;/声明一个声明一个int型数组型数组下标:下标:0 1 2 3 4 5 6 7 8 9a0 a1 a2 a3 a4 a5 a6 a7 a8 a9地址:地址:&a0&a1&a2&a3&a4&a5&a6&a7&a8&a9元素值:元素值:数组元素具有变量的基本属性数组元素具有变量的基本属性变量名:变量名
9、:aiai地址:地址:&ai&ai变量值:变量值:aiai类型:类型:intint一维数组一维数组一维数组元素的引用一维数组元素的引用程序设计与问题求解I11int a10=0,1,2,3,4,5,6,7,8,9;int a10=0,1,2,3,4;int a =0,1,2,3,4;一维数组的初始化一维数组的初始化定义方法不一样,都完成什么功能?定义方法不一样,都完成什么功能?程序设计与问题求解I12定义数组时顺序对各元素赋以初值定义数组时顺序对各元素赋以初值u例例:int array10=0,1,2,3,4,5,6,7,8,9;全部全部元素赋初值时,可以不指定数组长度元素赋初值时,可以不指定
10、数组长度u例例:int array5=0,1,2,3,4;u也可以写成也可以写成 int array=0,1,2,3,4;可以只给一可以只给一部分部分元素赋值。元素赋值。u例例:int array10=0,1,2,3,4;前面前面5个元素赋初值,后个元素赋初值,后5个元素值为个元素值为0。u当初值个数少于数组元素个数时,多的元素被赋予当初值个数少于数组元素个数时,多的元素被赋予0值。值。一维数组的初始化一维数组的初始化程序设计与问题求解I13例:成长的记录:输入、输出从小到大的身高。例:成长的记录:输入、输出从小到大的身高。算法分析:算法分析:1.输入从小到大的身高,保存在数组输入从小到大的身
11、高,保存在数组heightN中。中。2.输出从小到大的身高。输出从小到大的身高。一维数组一维数组程序设计与问题求解I14/成长的记录:输入输出从小到大的身高。成长的记录:输入输出从小到大的身高。#include void main()const int N=20;int i;double heightN;for(i=0;iN;i+)coutheighti;for(i=0;iN;i=i+1)cout第第i+1次身高:次身高:heightiendl;一维数组一维数组数组元素数组元素单个使用单个使用数组下标数组下标不能超出不能超出边界边界程序设计与问题求解I15例:输入例:输入10个整数,找出其中的
12、最大数。个整数,找出其中的最大数。算法分析:算法分析:1.输入输入10个整数保存在数组中个整数保存在数组中a0-a92.假设数组中第假设数组中第1个元素最大个元素最大令令max=a03.将将ai(1=i max,max=ai,i=i+13.2 否则,否则,i=i+14.输出最大元素输出最大元素max。一维数组一维数组程序设计与问题求解I16/输入输入10个整数,找出其中的最大数。个整数,找出其中的最大数。#include void main()const int N=10;int i,arrayN;coutPlease input an array with N elements:endl;f
13、or(i=0;iarrayi;int max=array0;for(i=1;imax)max=arrayi;coutmax=maxendl;一维数组一维数组程序设计与问题求解I17【问问题题】某某学学校校组组织织歌歌手手大大赛赛,聘聘请请了了N名名评评委委为为参参赛赛选选手手打打分分,评评分分原原则则是是去去掉掉一一个个最最高高分分和和一一个个最最低低分分,取取剩剩下下评评分分的的平平均均值值作作为为该该选选手手的的最最后后得得分分。评评委委给给出出的的评评分分范范围围为为0.10,可可以以是是小小数数。假假设设评评委委的的评评分分由由键盘输入,要求输出参赛选手的最终得分。键盘输入,要求输出参
14、赛选手的最终得分。【关键】【关键】N名评委的打分用什么保存?名评委的打分用什么保存?【想想法法】N个个变变量量存存放放N名名评评委委的的打打分分,找找出出最最高高分分和和最最低低分分,统统计计剩剩下下评分的平均值。评分的平均值。【算法算法】输入:输入:N个评分(小数)个评分(小数)输出:除输出:除最高分和最低分外的平均值最高分和最低分外的平均值歌手大赛歌手大赛1.在在N个个变变量量中中扫扫描描一一遍遍,找找到到最最小小值值和和最最大大值值,并计算评分的总和并计算评分的总和sum;2.平均分平均分(sum-最小值最小值-最大值最大值)/(N-2);3.返回平均分;返回平均分;程序设计与问题求解I
15、18/歌手大赛,歌手大赛,评委的评分由键盘输入,评委的评分由键盘输入,去掉最高分和最低分,输出参赛选手的最终得分。去掉最高分和最低分,输出参赛选手的最终得分。#include void main()const int N=7;/评委数目评委数目int i;double scoreN,sum,max,min,average;cout请输入各评委打分请输入各评委打分:endl;for(i=0;iscorei;max=score0;min=score0;sum=score0;for(i=1;imax)max=scorei;if(scoreimin)min=scorei;sum=sum+scorei;
16、average=(sum-max-min)/(N-2);cout去掉最高分去掉最高分:max,去掉最低分,去掉最低分:minendl;cout参赛选手的最终得分:参赛选手的最终得分:averageendl;歌手大赛歌手大赛程序设计与问题求解I19【问问题题】某某学学校校组组织织歌歌手手大大赛赛,聘聘请请了了N名名评评委委为为参参赛赛选选手手打打分分,评评分分原原则则是是去去掉掉一一个个最最高高分分和和一一个个最最低低分分,取取剩剩下下评评分分的的平平均均值值作作为为该该选选手手的的最最后后得得分分。评评委委给给出出的的评评分分范范围围为为0.10,可可以以是是小小数数。假假设设评评委委的的评评
17、分分由由键键盘盘输输入入,要要求求输输出出参参赛赛选选手手的的最最终终得得分分,并并且且最最后后给给出出所所有有参参赛赛选选手手得得分排名分排名。【关键】【关键】所有参赛选手的得分如何保存?如何排序?所有参赛选手的得分如何保存?如何排序?【想想法法】M个个参参赛赛选选手手的的得得分分保保存存在在数数组组averageM中中,然然后后对对这这M个个数数据进行排序。据进行排序。歌手大赛歌手大赛程序设计与问题求解I20排序算法排序算法算法分析(升序):算法分析(升序):1.1.两两比较相邻元素两两比较相邻元素AiAi和和Ai-1 Ai-1(i=N-1,N-2,2,1,0),(i=N-1,N-2,2,
18、1,0),如果如果AiAi-1,AiAi-1,则交换它们的位置则交换它们的位置 AiAiAi-1;Ai-1;经过经过N-1N-1次比较次比较,将将最小值交换到最小值交换到A0A0的位置的位置;2.2.对剩下的对剩下的N-1N-1个元素个元素,再两两进行比再两两进行比较较,按同样规则交换它们的位置按同样规则交换它们的位置,经经过过N-2N-2次比较次比较,将次最小值交换到将次最小值交换到A1A1的位置的位置;3.3.如法炮制如法炮制,经过经过N-1N-1趟的趟的“冒泡处理冒泡处理”,每趟进行每趟进行N-iN-i次的比较次的比较,全部数列全部数列有序。有序。冒泡排序冒泡排序程序设计与问题求解I21
19、/冒泡排序,输入冒泡排序,输入n个整数,输出升序排序结果个整数,输出升序排序结果#include void main()const int N=10;/N个整数升序排序个整数升序排序int i,j,temp;int listN;cout 请输入待排序的整数数列:请输入待排序的整数数列:;for(i=0;ilisti;for(i=0;ii;j-)/每次都从最后一个元素开始比较每次都从最后一个元素开始比较 if(listj-1listj)/如果前后大小顺序不符合要求,则交换位置如果前后大小顺序不符合要求,则交换位置 temp=listj-1;listj-1=listj;listj=temp;/输出
20、排序后的数组输出排序后的数组cout 排序后的整数数列为:排序后的整数数列为:;for(i=0;iN;i+)cout listi ;coutendl;程序设计与问题求解I22【问问题题】某某学学校校组组织织歌歌手手大大赛赛,聘聘请请了了N名名评评委委为为参参赛赛选选手手打打分分,评评分分原原则则是是去去掉掉一一个个最最高高分分和和一一个个最最低低分分,取取剩剩下下评评分分的的平平均均值值作作为为该该选选手手的的最最后后得得分分。评评委委给给出出的的评评分分范范围围为为0.10,可可以以是是小小数数。假假设设评评委委的的评评分分由由键键盘盘输输入入,要要求求输输出出参参赛赛选选手手的的最最终终得
21、得分分,并并且且最最后后给给出出所所有有参参赛赛选选手手得得分排名分排名。【关键】【关键】所有参赛选手的得分如何保存?如何排序?所有参赛选手的得分如何保存?如何排序?【想想法法】M个个参参赛赛选选手手的的得得分分保保存存在在数数组组averageM中中,然然后后对对这这M个个数数据进行排序。据进行排序。【算法】输入:【算法】输入:N个评分个评分 输出:输出:M个选手的最终得分和排名个选手的最终得分和排名歌手大赛歌手大赛1.在在N个个变变量量中中扫扫描描一一遍遍,找找到到最最小小值值和和最最大大值值,并计算评分的总和并计算评分的总和sum;2.平均分平均分(sum-最小值最小值-最大值最大值)/
22、(N-2);3.返回平均分;返回平均分;1.i循环循环M次次 1.1在在N个个变变量量中中扫扫描描一一遍遍,找找到到最最小小值值和和最最大大值值,并计算评分的总和并计算评分的总和sum;1.2平均分平均分i(sum-最小值最小值-最大值最大值)/(N-2);2.对对平均分平均分进行排序进行排序;3.输出平均分序列。输出平均分序列。程序设计与问题求解I23/歌手大赛,输入每位评委打分,去掉最高分、最低分,得每位选手的最终得分,最后按歌手大赛,输入每位评委打分,去掉最高分、最低分,得每位选手的最终得分,最后按得分排名得分排名#include void main()const int N=7;/评委
23、数目评委数目int i;double scoreN,sum,max,min,average;cout请输入各评委打分请输入各评委打分:endl;for(i=0;iscorei;max=score0;min=score0;sum=score0;for(i=1;imax)max=scorei;if(scoreimin)min=scorei;sum=sum+scorei;average=(sum-max-min)/(N-2);cout去掉最高分去掉最高分:max,去掉最低分,去掉最低分:minendl;cout参赛选手的最终得分:参赛选手的最终得分:averageendl;歌手大赛歌手大赛#incl
24、ude void main()const int M=20;/参赛歌手数目参赛歌手数目 const int N=7;/评委数目评委数目 int i,j;double scoreN,sum,max,min,averageM,temp;for(i=0;iM;i+)/统计各选手得分统计各选手得分 cout请输入各评委打分请输入各评委打分:endl;for(j=0;jscorej;max=score0;min=score0;sum=score0;for(j=1;jmax)max=scorej;if(scorejmin)min=scorej;sum=sum+scorej;averagei=(sum-ma
25、x-min)/(N-2);cout去掉最高分去掉最高分:max,去掉最低分,去掉最低分:minendl;cout参赛选手的最终得分:参赛选手的最终得分:averageiendl;程序设计与问题求解I24for(i=0;ii;j-)if(averagej-1averagej)temp=averagej-1;averagej-1=averagej;averagej=temp;for(i=0;iM;i=i+1)/输出各选手最后得分排名输出各选手最后得分排名 cout“各参赛选手的最终得分:各参赛选手的最终得分:averageiendl;歌手大赛歌手大赛程序设计与问题求解I25【问问题题】某某学学校校
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 其它 课程 程序设计 问题 求解
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。