程序设计基础(C语言)8讲义-数组在函数中的应用2课件_第1页
程序设计基础(C语言)8讲义-数组在函数中的应用2课件_第2页
程序设计基础(C语言)8讲义-数组在函数中的应用2课件_第3页
程序设计基础(C语言)8讲义-数组在函数中的应用2课件_第4页
程序设计基础(C语言)8讲义-数组在函数中的应用2课件_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8.1.2数组名作函数参数除了可以用数组元素作为函数参数外,还可以用数组名作函数参数(包括实参和形参)注意:用数组元素作实参时,向形参变量传递的是数组元素的值;用数组名作函数实参时,向形参

传递的是数组首元素的地址。8.1.2数组名作函数参数除了可以用数组元素作为函数参数外,18.1.2数组名作函数参数

例7.10有一个一维数组score,内放10个学生成绩,求平均成绩。解题思路:用函数average求平均成绩,用数组名作为函数实参,形参也用数组名在average函数中引用各数组元素,求平均成绩并返回main函数8.1.2数组名作函数参数例7.10有一个一维数组sc2#include<stdio.h>intmain(){floataverage(floatarray[10]);

floatscore[10],aver;inti;printf("input10scores:\n");for(i=0;i<10;i++)scanf("%f",&score[i]);printf("\n");aver=average(score);printf("%5.2f\n",aver);return0;}定义实参数组#include<stdio.h>定义实参数组3score[0]score[1]score[2]score[3]score[4]score[5]score[6]score[7]score[8]score[9]67.589.59969.57789.576.5546099.5array[0]array[1]array[2]array[3]array[4]array[5]array[6]array[7]array[8]array[9]执行到语句aver=average(score)时:score[0]score[1]score[2]score[4score[0]score[1]score[2]score[3]score[4]score[5]score[6]score[7]score[8]score[9]67.589.59969.57789.576.5546099.567.589.59969.57789.576.5546099.5array[0]array[1]array[2]array[3]array[4]array[5]array[6]array[7]array[8]array[9]×score[0]score[1]score[2]score[5score[0]score[1]score[2]score[3]score[4]score[5]score[6]score[7]score[8]score[9]67.589.59969.57789.576.5546099.5array&score[0]array[i]相当于score[i]score[0]score[1]score[2]score[6floataverage(float

array[10]){inti;floataver,sum=array[0];for(i=1;i<10;i++)sum=sum+array[i];aver=sum/10;return(aver);}定义形参数组相当于score[0]相当于score[i]floataverage(floatarray[10])7

例7.11有两个班级,分别有35名和30名学生,调用一个average函数,分别求这两个班的学生的平均成绩。例7.11有两个班级,分别有35名和30名学生,调用8解题思路:需要解决怎样用同一个函数求两个不同长度的数组的平均值的问题定义average函数时不指定数组的长度,在形参表中增加一个整型变量i从主函数把数组实际长度从实参传递给形参i这个i用来在average函数中控制循环的次数为简化,设两个班的学生数分别为5和10解题思路:9#include<stdio.h>intmain(){floataverage(floatarray[],intn);floatscore1[5]={98.5,97,91.5,60,55};floatscore2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5};printf(“%6.2f\n”,average(score1,5));printf(“%6.2f\n”,average(score2,10));return0;}#include<stdio.h>10floataverage(floatarray[],intn){inti;floataver,sum=array[0];for(i=1;i<n;i++)sum=sum+array[i];aver=sum/n;return(aver);}调用形式为average(score1,5)时相当于score1[0]相当于score1[i]相当于5floataverage(floatarray[],i11floataverage(floatarray[],intn){inti;floataver,sum=array[0];for(i=1;i<n;i++)sum=sum+array[i];aver=sum/n;return(aver);}调用形式为average(score2,10)时相当于score2[0]相当于score2[i]相当于10floataverage(floatarray[],i127.7.3多维数组名作函数参数

例7.13有一个3×4的矩阵,求所有元素中的最大值。解题思路:先使变量max的初值等于矩阵中第一个元素的值,然后将矩阵中各个元素的值与max相比,每次比较后都把“大者”存放在max中,全部元素比较完后,max的值就是所有元素的最大值。7.7.3多维数组名作函数参数例7.13有一个3×4的13#include<stdio.h>intmain(){intmax_value(intarray[][4]);inta[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};printf(“Maxvalueis%d\n”,

max_value(a));return0;}可以省略不能省略要与形参数组第二维大小相同#include<stdio.h>可以省略不能省略14intmax_value(intarray[][4]){inti,j,max;max=array[0][0];for(i=0;i<3;i++)for(j=0;j<4;j++

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论