函数调用时参数传递方式.ppt

上传人:sh****n 文档编号:11521627 上传时间:2020-04-27 格式:PPT 页数:12 大小:282.81KB
返回 下载 相关 举报
函数调用时参数传递方式.ppt_第1页
第1页 / 共12页
函数调用时参数传递方式.ppt_第2页
第2页 / 共12页
函数调用时参数传递方式.ppt_第3页
第3页 / 共12页
点击查看更多>>
资源描述
32函数调用时参数传递方式,本段任务学会用普通变量、数组元素变量和数组名变量作函数的参数实施编程。懂得参数的传值和传地址两种不同的参数传递方法。321普通变量作函数的参数想一想:下面例4_3_4程序设计的目的是将A、B两数交换。可是程序运行后两个数是否交换了?,main()voidSwap(intiA,intiB);/*函数声明*/intiA,iB;/*定义变量iA,iB*/printf(“InputiAiB=”);scanf(“%d%d”,/*Swap函数无返回值,故return后无参数。当然连return也可省略*/,322数组元素作函数参数,例4_3_5两个队进行“掰手腕”比赛,每队5名选手,每次每队出一名选手,由每队教练决定各自选手的出场顺序,共进行5场比赛,决出胜负。我们这里做个假设,比赛都是体重较重的人获胜,这样各队选手的出场顺序就非常关键了。输入排好顺序的各队的15号选手的体重,比较一下谁能获胜。分析:定义fTeama5、fTeamb5数组存储两队选手的体重。定义函数Judge来比较选手的体重,若Teama队选手体重大,就返回值1;若Teamb队选手体重大,就返回值-1。再定义两个变量对各队的胜利次数进行累加,最后再进行比较,决出胜利者。,main()intJudge(floatfA,floatfB);/*函数声明*/floatfTeama5,fTeamb5;inti,iA=0,iB=0;printf(“PleaseinputTeamA:n”);for(i=0;iiB)scanf(“%f”,fTeambi);/*比较iA和iB的大小,输出相应的信息*/elseprintf(“TeamBWin!n”);intJudge(floatfA,floatfB)/*Judge函数用于比较体重,实参、与形参类型必须一致*/if(fAfB)return(1);/*如果fA大于fB,函数返回值是1*/elseif(fAfB)return(-1);/*否则函数返回值是-1*/,323数组名作函数参数,例4_3_6已知一个班10名学生的计算机考试成绩,求平均成绩。要求:在主函数main中输入10个成绩,并输出最后的平均成绩;求平均成绩的过程用函数完成。分析:这是本节的例4_1_1,前面是用一个主函数完成的。10个已知数据我们仍然把它们组织成一个数组iScore10。要用函数计算数组10个元素的平均值,就应该由主调函数将这10个数组元素传递给被调函数,我们将数组作为一个整体传递给被调函数。实参表列就写数组名即可,形参表列就写与实参数组同类型的数组。,/*4_3L6_1.C*/main()floatAverage(intiScore10);/*函数声明*/intiScore10,i;floatfAver;for(i=0;i10;i+)scanf(“%d”,/*将平均成绩返回给主调函数*/,例4_3_7一个年级有3个班,每个班有20名学生。输入所有学生的计算机考试成绩,求出最高分,以及该学生的所在班级、学号。要求:在主函数中输入成绩,输出最高分,以及该学生的所在班级、学号;在函数中完成求最高分和学生所在班级学号的功能。分析:这道题就是本章第一节例4_1_8,现要求用函数完成对二维数组的运算,因此实参数组应该是二维数组,形参也应该是同类型的二维数组。定义二维形参数组:voidHighscore(intiScoremn),intg_iMax,g_iRow=0,g_iColumn=0;main()voidHighscore(intiScore20,intn);intiScore320,I,j;printf(“Pleaseinputscore:n”);for(i=0;i3;i+)for(j=0;j20;j+)scanf(“%d”,例4_3_8输入一个班级10名学生的计算机考试成绩,按成绩从高到低的顺序排序。要求:在主函数中输入原始数据,并输出最后排序好的数据,在函数中完成排序功能。分析:这是本章第一节例4_1_3,现改用函数实现。由于原来的解法实、形参都是一维数组。新解法只需将原解法中排序功能的程序段抽出来,单独构成函数;再将剩下的程序段加上函数声明和函数调用语句就可以了。设计用数组名作参数,形参数组排序好了实际上实参数组也排序好了。,#defineN10/*定义符号常量N,表示待排序数组长度*/main()voidSort(floatfScore,intn);/*函数声明*/floatfScoreN;inti,j;/*输出提示信息,输入待比较的数据,同例4_1_3,略写*/Sort(fScore,N);/*函数调用,用fScore数组和N作实参*/*输出提示信息,输出最后排序好的数据,同例4_1_3,略写*/voidSort(floatfScore,intn)/*函数定义,用fScore数组和n作形参*/inti,j;floatfTemp;/*定义变量fTemp作为数据交换的中间变量*/for(i=0;in-1;i+)for(j=0;jn-1-i;j+)/*用冒泡法排序,见第四章113*/if(fScorejfScorej+1)fTemp=fScorej;fScorej=fScorej+1;fScorej+1=fTemp;return;/*函数结束*/,作业与练习:(本节习题都要求用函数形式完成),4、输入一个正整数,求出它所有的因子。在主函数中输入数据并输出结果。5、输入10名学生的某门课程的考试成绩,然后再输入一个成绩,查找该成绩是第几名学生的成绩;如果没有找到,输出“无此数”。在主函数中输入数据并输出结果。6、输入若干个正整数,判断每一个数是否是素数。在主函数中输入数据,并输出结果。,下次课再见!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!