- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8二维数组函数和常用算法综合编程
·PAGE 140·
C语言大学实用教程学习指导
·PAGE 141·
第2章 上机实验指导
2.2.7 二维数组和函数综合编程练习
成绩排名次
某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。考试后要求:
(1)计算每个学生的总分和平均分;
(2)每门课的平均分。
(3)按总分成绩由高到低排出成绩的名次;
(4)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;
程序要实现的功能,根据功能划分为几个函数
输入成绩和学号。简单来说是给一维数组和二维数组分别赋初值。
求每个学生的总分和平均分. 简单来说是求二维数组score[STU][COURSE]每行的总和以及平均分。
每门课的平均分,简单来说是求二维数组score[STU][COURSE]每列的平均分。
按总分成绩由高到低排出成绩的名次. 简单来说,是对成绩数组sum[STU]排序,相应得把别的成绩数组、平均分数组等都一并排序。
定义好要公共使用的变量或数组。
如成绩数组int score[STU][COURSE],STU\COURSE定义为常变量。
学号数组:long num[STU];
代表参加考试的实际人数的变量int n;
其它形参中用到的变量、数组也要在主调函数中定义(名字不一定相同,但一定要代表同样的含义),否则没法实现实参到形参的传递。
float aver[],float course_aver[]
确定函数要使用的形式参数。
首先明确每个函数里面定义的变量是局部变量,只能在该函数范围内起作用。而形参是一个特殊的局部变量,它也是在本函数范围内生效,也是随着函数的运行而分配空间,函数结束则回收空间,但它可以接收从实参传递过来的数值或地址值。
一般是每个函数实现相对独立的功能,然后在主函数(或主调函数)中调用各子函数实现特定的功能,那么主函数和各子函数就要通过数据来联系,也即主函数和子函数要通过访问同一个数组或代表相同含义的变量来实现两函数的数据共享。
那么如何实现对同一个数组或变量的访问?可以把需要共同使用的数据作为定义为全局变量,则各函数可直接访问这些数据,不需要再定义形参;也可以使用形参,把两函数之间需要共同使用的数据作为定义为形式参数,在调用函数时,通过实参到形参的传递,来实现数据共享。
如果想共享整个数组,则形参定义为数组,主调函数中相应的定义代表同样含义的数组,在函数调用语句中,实参使用数组名。如果想共享单个的变量,则形参定义为普通的变量,主调函数中也相应的定义代表同样含义的变量,在函数调用语句中,实参使用变量名。
实参和形参可以同名也可以不同名。如果子函数较多,而不同函数又都可能要使用同样的数据,则实参形参可以使用同样的名字,这样容易作到“见名知其义”。
形参数组的长度可以省略。
1、输入成绩和学号。void Input(long num[], int score[ ][COURSE], int n)
2、求每个学生的总分和平均分void GetSumAver(int score[][COURSE], int n, int sum[], float aver[])
3、每门课的平均分void aver_cour(int score[][COURSE],int n,float course_aver[])
4、按总分成绩由高到低排出成绩的名次
void Sort(long num[],int score[][COURSE], int n, int sum[],float aver[])
5、打印名次表
void Print(long num[], int score[][Course], int n, int sum[], float aver[])
四、到底需不需要返回值?
一个函数中,只能有一条return语句起作用。因此Return只能返回单个的数值,如果需要返回单个的数值到主调函数中调用该子函数的位置,则可以加上return语句,如return average/return sum/return flag;其中average\sum\flag都是子函数里面的局部变量,不是主调函数和被调函数共享的形式参数.相应得要注意return后面的数据类型要与函数名前面的数据类型一致。
如果是想返回整个数组的值,则不需要特意使用return语句,因为我们通常会把这个同学们想特意返回值的数组作为形参,那么主调函数A和被调函数B本身就共享同一个内存段,如果B被内存段做了修改,A读取的是同一个内存段,所以也能读取到修改后的值。
五、 可以依次单独写各子函数了
六、 最后可以写主函数。
如果完全想好了子函数的功能,想好了要用到哪些形参,就知道该怎么调用子函
您可能关注的文档
- 2013浙江绍兴一模地理word版.doc
- 2014初等教育专业(数学方向)人才培养方案最新版.docx
- 广电新闻学专业人才培养方案定稿.doc
- 广州西关美食地图.doc
- 2014-2015CSSCI拓展刊.docx
- 2013计算机多媒体技术《互动多媒体产品设计》0.doc
- 广联达单构件高频问题楼梯常见问题处理.doc
- 广播体操比赛方案开幕式流程评分标准流程示意图及出场顺序1.doc
- 广联达图形算量软件GCL2008--快捷键更新版.doc
- 广电电气安全技术交底.doc
- 上课《归园田居(其一)》课件28张.pptx
- 色彩的魅力课件55.ppt
- 山水田园诗导学练习鉴赏.ppt
- 部编版《白鹭》课件.pptx
- 《Excel在财务中的应用》项目七 全面预算编制方法与应用 教学课件.pptx
- 《Excel在财务中的应用》项目六 利润管理决策模型与应用 教学课件.pptx
- 《Excel在财务中的应用》项目五 运营资金的管理 教学课件.pptx
- 《Excel在财务中的应用》项目四 项目投资管理决策与应用 教学课件.pptx
- 《Excel在财务中的应用》项目三 筹资管理决策模型与应用 教学课件.pptx
- 《Excel在财务中的应用》项目二 Excel 常用函数基础 教学课件.pptx
文档评论(0)