当前课程知识点:C语言程序设计 >  第22讲 编程训练 >  编程训练 >  数组参数传递(上)

返回《C语言程序设计》慕课在线视频课程列表

数组参数传递(上)在线视频

返回《C语言程序设计》慕课在线视频列表

数组参数传递(上)课程教案、知识点、字幕

这一讲通过事例讲解涉及数组函数的调用

大家可以对比一下数组在定义 参数传递

及调用时的不同形式以及有多个返回值时如何处理

例1计算平均分

要求有5个学生的成绩

编程计算并输出平均分

计算平均分用函数实现

我们看一下这个程序

首先这是求平均分的函数

然后这儿定义sum是下面做累加用的

然后这个循环过程当中就把数组中的各项累加到sum当中

然后返回时就把累加的总分数

再除以学生的人数就是除以5

返回平均成绩

然后我们看在main函数当中

我们直接通过赋初值的方法把成绩给到这儿了

然后这儿是调用求平均分的函数

这儿需要注意的是

在调用的时候

我们看这个地方这儿直接写数组的名字

既不要后面带括号

也不要带别的

就仅仅是数组名

还要注意的是这是调用函数的时候

这儿参数是这样的

然后我们看这个函数本身

就是它的形参这个地方我们数组名写的是s

但是实际上

这个地方这个score

然后这儿虽然变量名数组的名字不一样了

但实际上通过这样传递

那么传过来的还是同样的一个数组

就是说s这个数组和score这个数组是一模一样的

这个地方注意一下它的这个形式

有5个学生的成绩

编程计算并输出平均分和最高分

计算平均分和最高分用一个函数实现

这个例子给大家展示了当函数需要带出多个值时如何处理

函数需要带出两个值

这种情况下可以通过数组带回结果

也可以通过全局变量来实现

我们看一下方法1就是通过数组带回多个结果

这是用函数来计算平均分

及最高分的这样一个概述性的描述

就是先计算出来平均分

然后把平均分赋值给这个result[0]

就是这个数组的第一个元素

然后计算出来最高分

把最高分赋值给第二个元素

这个地方s就是指成绩的那个数组

然后为了返回多个值

我们在这个地方又多带了一个数组

那么这种情况下你需要返回几个值

那么就可以让这个数组设成多大

比如说我们这个地方是要返回两个值

那么这儿在主程序当中设定传过来的数组时

只需要有两个元素

如果你要想返回的值更多

需要返回几个值

那么这个数组就设多大

我们看一下

在主程序当中

这个res[2]这个就刚才讲的

它是要返回平均分及最高分的

就返回两个值

所以这个元素就设成有两个元素的数组

然后这是成绩

我们在这个地方直接调用这个函数

调用的时候我们看它的参数形式score

就是这个数组

然后res就是这个数组

我们在刚才的那个例子当中也解释了

那么这个地方调用的时候直接写数组名

就是这儿s和这儿score

虽然名字不同但其实它们是同一个数组

这个res和这个result虽然名字不同

它们也是同一个数组

那么也就是说在这儿调用了以后

这个地方返回给result[0]的结果

实际上等同于是给写到这个res[0]里面

写到result[1]里面的结果实际上等同于写到res[1]里面

所以这个地方当输出的时候

这儿输出的就是平均分

这儿输出的就是最高分

我们看一下完整的程序

那么这块呢就是计算平均分

然后我们把计算出来的平均分赋值给result[0]

然后下面这个过程是计算最高分的过程

然后把计算出来的最高分赋值给result[1]

那么计算最高分的这个过程

我们在以前的课程里面讲过

我们运行一下这个程序

这个是运行的结果

就是平均分是78点多

然后最高分是95

当然这个地方输出比较粗糙

就是输出成绩可能看起来不太完美

要想完美一点你可以在这个地方输出的时候

比如小数点后面就只留一位

当然那是细节

与我们整个程序的主旨没有关系

我们看一下通过全局变量来实现计算平均分

及最高分的方法

这儿定义了两个全局变量

aver表示平均分

max表示最高分

然后在这个函数当中那我们就只需要一个参数

就是成绩数组

在这个里面计算出来平均分

然后把平均分赋值给aver

计算出来的最高分

把最高分赋值给max

在主程序当中

这样就通过赋初值的方法给成绩数组给值

然后这儿就调用这个函数

这个函数调用了以后

因为在这个地方它执行完了以后把平均分

与最高分都是赋值给了全局变量的

所以就说它影响了全局变量的值

那么我们在输出的时候就直接输出这个aver和max

这样就得到了这个结果

当然像这样需要函数影响多个值

并且需要带回到主程序当中之后

那么使用方法1和方法2各有优劣

这个大家可以根据具体情况来进行选择

C语言程序设计课程列表:

第0讲 导言

-简单介绍课程性质等

-关于编程训练

第1讲 C程序框架

-C程序框架

-作业

第2讲 C程序编译环境

-C语言的编译环境

-作业

第3讲 顺序程序的几个例子

-顺序程序的几个例子

-作业

第4讲 常见的编译错误

-常见的编译错误

-作业

-编译错误探讨

第5讲 输入输出精要

-输入输出精要

-作业

-输入输出格式探讨

第6讲 选择结构的典型例子

-选择结构的典型例子

-作业

第7讲 选择结构常见错误

-选择结构常见错误

-作业

第8讲 排除程序错误的常规方法

-排除程序错误的常规方法

-排除错误探讨

第9讲 循环结构基础

-循环结构基础

-作业

-循环类型

第10讲 循环结构程序例子

-循环结构程序例子

-作业

-程序结构

第11讲 函数基础

-函数基础

-作业

第12讲 函数举例

-函数举例(上)

-函数举例(下)

第13讲 变量的作用域与生存期

-变量的作用域与生存期

-变量的使用

第14讲 数组基础

-数组基础

-作业

第15讲 数组应用举例

-数组应用举例(上)

-数组应用举例(下)

第16讲 数组参数传递

-数组参数传递(上)

-数组参数传递(下)

-作业

第17讲 指针变量

-指针变量(上)

-指针变量(下)

-作业

第18讲 字符串

-字符串(上)

-字符串(下)

-作业

第19讲 程序调试

-程序调试

-程序调试的重要性

-程序调试讨论

第20讲 结构体及其应用

-结构体及其应用(上)

-结构体及其应用(下)

第21讲 文件

- 文件(上)

-文件(下)

第22讲 编程训练

- 编程训练

数组参数传递(上)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。