欢迎来到天天文库
浏览记录
ID:52993180
大小:473.50 KB
页数:36页
时间:2020-04-15
《C语言-第8章-数组做函数参数.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8讲函数_2C语言程序设计内容提要一维数组做函数参数二维数组做函数参数变量的作用域和存储类别(理论性知识)进一步理解函数的递归调用和递归算法的应用回顾上周内容怎样编写自定义函数?怎样调用自定义函数?函数的格式函数值类型函数名(形式参数){函数体}说明:如果函数没有函数值,函数值类型为void如果函数有函数值,函数值类型为某种数据类型,函数值由return语句返回;如果函数没有形式参数,表示为void如果函数有形式参数,则每一个形参的说明均为:数据类型形参名如果有多个形参,用逗号分隔。函数的调用要让计算机执行一个函数,就必须对函数进行调用。说明:调用库函数,需要在源程序最前面通过inclu
2、de预编译指令引入对应库函数的头文件调用库函数的关键是遵守函数原型定义的约定使用正确的函数名传递的实参在数量,类型和顺序必须和形参一致如果有函数值,注意返回值的类型函数可以嵌套调用,递归调用,但是不能循环调用。1、实参与形参的个数相等,类型一致;2、实参可以是变量、表达式、常数,实参必须有确定的值;3、在调用函数时,如果被调用函数的形参是变量,实参和形参分别拥有各自的内存空间,实参将值传递给对应的形参,形参值的改变不影响实参;4、如果函数调用在前,函数定义在后,则在调用函数前必须对函数进行原型声明。函数总结1、输入的时候。scanf(“%d”,&a);2、数组名。inta[10],b[10]
3、;a=b;//错误,为什么之前哪些地方涉及过“地址”这个概念在调用函数时,如果被调函数的形参是一维数组,则对应的实参是一个内存单元的地址,实参数组和形参数组共享一段内存。在函数中对形参数组定义时,可以省略数组的大小说明。例如,intarr[]一维数组做函数参数程序举例P241.C程序的功能是:从键盘分别读入5个数到arrA中、8个数至arrB中,然后分别调用自定义函数输出数组arrA和arrB的各元素。voidprintArray(inta[],intn){inti;for(i=0;i4、数到arrA中、8个数至arrB中,然后分别调用自定义函数计算数组arrA和arrB各元素的平均值、再输出平均值。floataverage(inta[],intn){inti,sum=0;for(i=0;i5、],intn,intm){intweizhi=-1,i;for(i=0;i6、形参数组共享一段内存。在函数中对形参数组定义时,可以指定每一维的大小,也可以省略第一维的大小说明,但不能只指定第一维而省略第二维。例如:intarray[3][4];intarray[][10];(正确!)intarray[][];intarray[3][];(错误!)二维数组做函数参数程序举例P818.C程序的功能是:找出任意的一个m×n矩阵每一行上的最大值的列下标并按示例格式要求显示。voidmax(inta[N][N],inthang,intlie){inti,j,maxvalue,maxlie;for(i=0;i7、;for(j=1;jmaxvalue){maxvalue=a[i][j];maxlie=j;}}printf("Themaxvalueinline%dis%d",i,maxlie);}}程序举例P823.C程序的功能是:将m(2<=m<=20)行m列的二维数组arrayA中的最后一行放到二维数组arrayB的第0列中,把二维数组arrayA中的第0行放到二维数组a
4、数到arrA中、8个数至arrB中,然后分别调用自定义函数计算数组arrA和arrB各元素的平均值、再输出平均值。floataverage(inta[],intn){inti,sum=0;for(i=0;i5、],intn,intm){intweizhi=-1,i;for(i=0;i6、形参数组共享一段内存。在函数中对形参数组定义时,可以指定每一维的大小,也可以省略第一维的大小说明,但不能只指定第一维而省略第二维。例如:intarray[3][4];intarray[][10];(正确!)intarray[][];intarray[3][];(错误!)二维数组做函数参数程序举例P818.C程序的功能是:找出任意的一个m×n矩阵每一行上的最大值的列下标并按示例格式要求显示。voidmax(inta[N][N],inthang,intlie){inti,j,maxvalue,maxlie;for(i=0;i7、;for(j=1;jmaxvalue){maxvalue=a[i][j];maxlie=j;}}printf("Themaxvalueinline%dis%d",i,maxlie);}}程序举例P823.C程序的功能是:将m(2<=m<=20)行m列的二维数组arrayA中的最后一行放到二维数组arrayB的第0列中,把二维数组arrayA中的第0行放到二维数组a
5、],intn,intm){intweizhi=-1,i;for(i=0;i6、形参数组共享一段内存。在函数中对形参数组定义时,可以指定每一维的大小,也可以省略第一维的大小说明,但不能只指定第一维而省略第二维。例如:intarray[3][4];intarray[][10];(正确!)intarray[][];intarray[3][];(错误!)二维数组做函数参数程序举例P818.C程序的功能是:找出任意的一个m×n矩阵每一行上的最大值的列下标并按示例格式要求显示。voidmax(inta[N][N],inthang,intlie){inti,j,maxvalue,maxlie;for(i=0;i7、;for(j=1;jmaxvalue){maxvalue=a[i][j];maxlie=j;}}printf("Themaxvalueinline%dis%d",i,maxlie);}}程序举例P823.C程序的功能是:将m(2<=m<=20)行m列的二维数组arrayA中的最后一行放到二维数组arrayB的第0列中,把二维数组arrayA中的第0行放到二维数组a
6、形参数组共享一段内存。在函数中对形参数组定义时,可以指定每一维的大小,也可以省略第一维的大小说明,但不能只指定第一维而省略第二维。例如:intarray[3][4];intarray[][10];(正确!)intarray[][];intarray[3][];(错误!)二维数组做函数参数程序举例P818.C程序的功能是:找出任意的一个m×n矩阵每一行上的最大值的列下标并按示例格式要求显示。voidmax(inta[N][N],inthang,intlie){inti,j,maxvalue,maxlie;for(i=0;i7、;for(j=1;jmaxvalue){maxvalue=a[i][j];maxlie=j;}}printf("Themaxvalueinline%dis%d",i,maxlie);}}程序举例P823.C程序的功能是:将m(2<=m<=20)行m列的二维数组arrayA中的最后一行放到二维数组arrayB的第0列中,把二维数组arrayA中的第0行放到二维数组a
7、;for(j=1;jmaxvalue){maxvalue=a[i][j];maxlie=j;}}printf("Themaxvalueinline%dis%d",i,maxlie);}}程序举例P823.C程序的功能是:将m(2<=m<=20)行m列的二维数组arrayA中的最后一行放到二维数组arrayB的第0列中,把二维数组arrayA中的第0行放到二维数组a
此文档下载收益归作者所有