第十五讲函数3.ppt-高级语言课程教学网站-绍兴文理学院.ppt

第十五讲函数3.ppt-高级语言课程教学网站-绍兴文理学院.ppt

第十五讲函数3.ppt-高级语言课程教学网站-绍兴文理学院

第七章 函 数(3) * AAA BBBB TKS * (第十七讲) 绍兴文理学院 计算机系计算机应用教研室 让黑匣子为我们工作 AAA BBBB 一、教学目的:明确数组作为函数参数的传递方法;掌握主调函数和被调函数操作一维、二维数组的实质;掌握数组数据参数传递的程序设计;程序设计能力的训练。 二、教学重点:数组作为函数参数的传递方法;主调函数和被调函数操作一维、二维数组的实质;数组数据参数传递的程序设计;程序设计能力的训练。 三、教学难点:二维数组作为函数参数的用法;利用数组进行算法和程序设计。 四、教学过程: AAA BBBB 也谈最值互换 Problem Description 给你一个n行m列的矩阵,请你找出最大数与最小数并交换它们的位置。若最大或最小数有多个,以最前面出现者为准(矩阵以行优先的顺序存放,请参照Sample Input中第一组测试数据)。 Input 测试数据有多组,处理到文件尾。每组测试数据的第一行输入2个整数n,m(1n,m20),接下来输入n行数据,每行m个整数。 Output 每组测试数据输出处理完毕的矩阵。 —用数组作为函数参数实现 ? TKS * * AAA BBBB §7.补充 数组与函数 1、数组与函数概述 由于函数不能返回多个值,所以在调用函数后不可能返回数组的全部元素的值。数组与函数之间只存在如下关系。 (1) 向函数的形参传送数组元素。 (2) 调用函数后返回一个数组元素值。 (3) 向函数的形参传递数组名(数组的地址)。 (4) 函数对数组进行操作 2、函数对数组进行操作 用函数实现冒泡排序为例说明。 #include iostream using namespace std; #define N 8 void disp(void); void bubblesort(void); int a[N]={9,8,3,7,5,2,6,1}; int main(void) {bubblesort(); disp(); return 0; } 补充例1 函数实现冒泡排序 C+17_1 TKS * * AAA BBBB void bubblesort(void) {int i,j,temp; for(i=N-1;i0;i--) for(j=0;ji;j++) if(a[j]a[j+1]) {temp=a[j];a[j]=a[j+1]; a[j+1]=temp; } } void disp(void) {int i; coutendl排序结果:; for(i=0;i=N-1;i++) couta[i] ; coutendl; } 3、向函数的形参传递数组名 向函数传送数组名,就是以数组名作为参数。是“地址传送”。 不是把整个数组全部元素的值通过“值传送”方式传送给形参,而是传送数组首元素(数组名)的地址。 补充例1 函数实现冒泡排序 C+17_1 TKS * * AAA BBBB #include iostream using namespace std; #define N 8 void disp(int []); void bubblesort(int d[N]); int main(void) {int x[N]={9,8,3,7,5,2,6,1}; bubblesort(x); disp(x); return 0; } void bubblesort(int a[N]) {int i,j,temp; for(j=0;j=N-2;j++) for(i=0;i=N-2-j;i++) if(a[i]a[i+1]) {temp=a[i];a[i]=a[i+1]; a[i+1]=temp; } } void disp(int c[]) {int i; coutendl排序结果:; for(i=0;i=N-1;i++) coutc[i] ; coutendl; } 补充例2 向函数的形参 传递数组名 C+17_2 TKS * * AAA BBBB (1) 变量参数与数组名参数之间的比较 如果在被调用函数中使形参数组元素的值改变了,也就意味着主调函数中实参数组元素的值发生变化。 代码 主调函数 变量 读/写 代码 被调函数 实体不存在 变量参数传递 代码 主调函数 数组名 读/写 代码 被调函数 实体不存在 (a1)主调函数的代码读/写变量,被调函数实体不存在 (a2)主调函数的代码读/写数组元素,被调函数实体不存在 (a) 函

文档评论(0)

1亿VIP精品文档

相关文档