版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 自己构造新数据类型 学习任务 通过学习更复杂问题的编程,掌握自己设计构造类型数据的规律;掌握指针与基本类型变量、构造类型变量的联系;了解文件的基本应用。 学习目标 在程序设计时,掌握用构造类型数据编程解决实际问题;掌握用函数的方法组织程序;掌握用指针的形式访问数据。知识要点 数组、字符串、函数、结构、指针、文件等构造类型的定义、初始化、引用。能力要点 学会利用构造类型处理大量数据;使用函数的结构编写复杂的程序;利用指针访问变量、构造类型数据、函数等。 第一节 构造数组 本节任务 掌握用数组这种结构类型求大量数据的和、平均值、最大最小值等。学习要点 学会定义数组,以及数组中每一个元素的表
2、示方式。数组是由相同类型的变量按照一定的次序组织起来的数据类型。构成数组的变量称为数组元素,每一个数组元素都属于同一种数据类型,用一个统一的数组名和下标来唯一地确定数组中的元素。 11 做一个考试成绩处理系统 本段任务 通过制作一个考试成绩处理系统,掌握一维数组的构造、初始化、引用;学会数组的输入、输出、插入、删除、排序、顺序查找、求和、求平均、求最大最小值等应用。 【引例】学生每学期都要进行考试,考试完成后教师都要对考试成绩进行汇总分析,那么可以用C语言编制一个考试成绩处理系统,包括成绩输入、输出、删除、插入、统计等功能。同学们通过这个例子要学会一维数组的定义和使用。111 成绩输入、输出和
3、数据分析 例 4_1_1 已知一个班10名学生的计算机考试成绩,求平均成绩,输出所有考试成绩和平均成绩。分析:如果依照前几章所讲的知识,我们只需定义一个简单变量fScore,在循环内完成读入成绩和累加总成绩,然后求出平均成绩。整个程序执行完成后,变量fScore内是最后一个成绩,这时已经没有办法知道前9个成绩了。但在有些情况下,还需要保留所有的原始数据,因为再次输入原始数据可能是很麻烦的,例如:统计全市中考成绩等等。 定义:数组就是由若干个相同类型的变量按照下面的格式组织起来的数据类型。一维数组的定义格式为:类型说明符 数组名数组长度;例如: int a10; 每一个元素的引用方法是: 数组名
4、下标 想一想 如何用数组的知识解决上面例题提出的问题。 /* 4_1L1.C */main() float fScore10,fSum,fAverage; int i; fSum=0; for(i=0;i10;i+) scanf(“%f”,&fScorei); fSum=fSum+fScorei; /*将10个数组元素的值累加起来 */ fAverage=fSum/10; for(i=0;i10;i+) printf(“%6.2f”,fScorei); /*将10个数组元素的值输出*/ printf(“average=%fn”,fAverage); /*输出平均成绩*/例4_1_2 输入一个班
5、级10名学生的计算机考试成绩,求出总成绩、平均成绩、最高分和最低分。分析:请同学们模仿例4_1_1,这个问题解法的步骤是:(1)读入10个成绩;(2)求总成绩;(3)求平均成绩;(4)求最高和最低分。该题前面部分与例4_1_1相同,不同的是求最高分和最低分,即求数组的最大值和最小值,用fMax表示最大值,用fMin表示最小值。可以将第一个人的成绩设定为fMax和fMin的初值,然后逐个将其余9个人的成绩分别与fMax和fMin进行比较,若某一个比fMax大(或比fMin小),就将这个值赋给fMax(或fMin)9个人的成绩都比较完成后就可以得到最高分和最低分。 /* 4_1L2.C */ ma
6、in()float fScore10,fSum=0,fAverage,fMax,fMin;/*定义i,输出提示信息,读入10个成绩,累加,求平均分;与上例同,不重写*/ fMax=fScore0; fMin=fScore0; /*从第二个元素开始比较,求最大、最小值*/ for(i=1;ifMax) fMax=fScorei; /*每次比较后大的值赋给变量fMax*/ if(fScoreifMin) fMin=fScorei; /*每次比较后小的值赋给变量fMin*/ printf(“Output score array:”); /*输出提示信息*/ /*将fScore数组打印出来,与例4_1
7、_1同,不重写*/ printf(“n”); printf(“sum=%9.2f,average=%9.2f,max=%9.2f,min=%9.2fn”,fSum,fAverage,fMax,fMin); 112 成绩排序例4_1_3 输入一个班级10名学生的计算机考试成绩,按成绩从高到低的顺序排序。 冒泡法排序:冒泡法排序(设对N个数排序)是每次在待排序的数据中将相邻的两个数进行比较,将大数放在前面,小数放在后面。本题将待排序的数据放在fScore数组中。第1次N个数组元素中相邻的两个数比较和交换,保证大数放前,小数放后;共比较N-1次,比较完后N个数中最小的数就会排在最后一个;第2次在剩下
8、的N-1个数组元素中相邻的两个数比较,继续保证大数放前,小数放后,共比较N-2次,比较完成后N个数中次小的数就会排在倒数第二个;,直到最后一次,最前面的2个元素比较、交换,保证大数放前,小数放后,排序就完成。 /* 4_1L3.C */#define N 10 /*定义符号常量N,表示待排序数组长度*/main() float fScoreN,fTemp; int i,j; printf(“Please input score:n”); /*键盘读入待排序的数据*/ for(i=0;iN;i+) scanf(“%f”,&fScorei); for(i=0;iN-1;i+) for(j=0;jN-1-i;j+) if(fScorejfScorej+1) /*保证大数在前,小数在后*/ fTemp=fScorej; fScorej=fScorej+1; fScorej+1=fTemp; printf(“nThe sorted score is:n”); /*输出最后排序好的数据*/ for(i=0;iN;i+) printf(“%8.2f”,fScorei); 作业与练习: 1、输入一个班级所有学生的某门课程的考试成绩。按从低到高顺序排列并输出。 2、现有一个班级所有学生的某门课程的考试成绩,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026高中化学教资面试答辩经典例题含解析
- 2026初中物理教资面试试讲高频题含解析
- 井下采煤工岗后能力考核试卷含答案
- 假山工安全生产能力考核试卷含答案
- 考古勘探工风险评估强化考核试卷含答案
- 无机化学反应生产工班组安全能力考核试卷含答案
- 酶制剂制备工岗前情绪管理考核试卷含答案
- 宝剑工操作评估评优考核试卷含答案
- 年产200万套汽车车灯配件扩建建设项目可行性研究报告模板-备案审批
- 三年级上册语文园地知识点
- 江苏南京市七校联合体2026-2027学年第一学期10月联合调研试题高三化学试题(含答案)
- 2026危险化学品行业安全隐患排查对标手册
- Unit4 A better me Speed up教学课件2026-2027外研版五上英语
- 2026语文新教材 六年级上册第3课 古诗词三首 教学课件
- 河南农商行审计考试试题及答案
- 启发式教学思想和其案例解读培训课件
- 2026年上海市公务员录用考试《行测》《申论》试题+完整解析
- 2025年南宁市社区工作者招聘考试《综合能力》真题及答案
- 第二章新民主主义革命理论(版)
- 局密码电报管理工作制度
- GB/T 7582-2025声学听阈与年龄和性别关系的统计分布
评论
0/150
提交评论