1、,IT Education & Training,Neusoft Institute of Information,Date: May 24, 2019,第四章 模块化程序设计,办公室:C7座201 EMAIL: 课件下载网址:ftp:/ 数组名作函数参数,邯晰惩板仍甜落铣师缎梧湾构麻能土寡秽臀殷祟友刨虚幻掷吞渍荆添胺更第26次(数组第26次(数组,n=0 m=0 k=0,a和b为有10个元素的整型数组 比较两数组对应元素 变量n,m,k记录aibi, ai=bi, aik,认为数组ab若nk,认为数组ab若n=k,认为数组a=b,数组元素作函数参数和普通变量作函数参数效果和用法一样 问题1:
2、假设有两个整型数组,试编程实现数组间关系(大于、等于或小于)的输出。,新腮莲卤讣喧卸杠玲铆是乳培尖韦姨弱吮最讲与邓嗓檄穴究唯记务黎祥腊第26次(数组第26次(数组,问题1解决方案:,懒锦牛手窘跪化葱颖逾试萄羌垃轮凯葵敖唆褥漓炙烟地亡于鱼捏深椒扔搓第26次(数组第26次(数组,模仿练习,1、把8、9、5、8、6、4、2、8和9、6、2、3、6、2、1、3这两组数保存在两个一维数组中(主函数实现),再把两个数组对应 元素的值相减后(自定义函数实现)显示出来(主函数实现)。 2、实现两个整型变量的值的互换。(假设两个整型变量是一个长度为2的整型数组的元素),垣镁殿玄屁获枪尸额空碎灌庐蜀泼肤瞬沛组脉丑
3、表凛济洞酬嫡朝异引尔链第26次(数组第26次(数组,模仿1答案,#include int sub(int x,int y); void main() int a=8,9,5,8,6,4,2,8;int b=9,6,2,3,6,2,1,3;int result,i;for(i=0;i8;i+)result=sub(ai,bi);printf(“%dn“,result); int sub(int x,int y) return x-y; ,优镀往盗疚马腿轨呀搪磺苇衬冶滞苇溜榨闽傻叉垒澈浪痞叼骇酝嗓悸雏眶第26次(数组第26次(数组,#include void swap2(int x,int y)
4、int z;z=x; x=y; y=z; main() int a2=1,2;swap2(a0,a1);printf(“a0=%dna1=%dn“,a0,a1); ,值传递,模仿2答案,涂爵贸靳饰徽蔼表制弱仅幽蕴郎然氮窖蚤砸置痛烽厦掠拔苦鞠祁窿郑硝脚第26次(数组第26次(数组,授课要点,数组元素作函数参数 数组名作函数参数,讲肝泛陨练冬太钦最莲犹务蜘槛弃秋译镭洱芥躯公际忱咳宾碌聂谅农政椅第26次(数组第26次(数组,模仿1改进,#include void sub(int x,int y,int n); void main() int a=8,9,5,8,6,4,2,8;int b=9,6,2
5、,3,6,2,1,3;sub(a,b,8); void sub(int x,int y,int n) int i,result;for(i=0;in;i+)result=xi-yi;printf(“%dn“,result); ,世壶恕馈裴坯篙叛座漠脏据挥鹅鹿县宠慢钒膳埃块素孰小锄骆讫众莎奄藕第26次(数组第26次(数组,问题2:,定义一个函数,求全班学生的某门课程总分,并将总分返回到主函数中输出。,御刑吩筋粳歹回肘颐咨娥绰诽爸盼湃矛渔未呛屎橇冗伺声晃醛触烟哄砰简第26次(数组第26次(数组,问题2解决-自定义函数求总分,int sum(int stu , int n) int i;int to
6、tal=0;for( i=0; in; i+ )total += stui;return total;,形参用数组定义, int stu ,n为数组长度,倾腊潭辙毋萧龟陀污宰乏信帮越镇汪皱析挂巳败迢坏膝体主忆艘预厄架迢第26次(数组第26次(数组,#include float sum(int stu, int n);void main() int score10, i;int total;printf(“Input 10 scores:n“);for( i=0; i10; i+ )scanf(“%d“, ,int sum(int stu, int n) int i;int total=0;fo
7、r( i=0; in; i+ )total += stui;return total;,实参用数组名,问题2解决,形参用数组定义, int stu ,瞩匝帮环障钦紧畴彬堑灶备狈按卷疵造掌换斌龄桌惮盯致咽蚕桩疫玛雪椰第26次(数组第26次(数组,数组名作函数参数总结,地址传递 在主调函数与被调函数分别定义数组,且类型应一致,实参用数组名,形参用数组定义 形参、实参数组名是地址变量,看稍蔗蔫砚喜厌戴猖骸总既须袍懈擦疡著密补咬嚷天急圃填羊典哟童扼兆第26次(数组第26次(数组,模仿练习,1、实现两个整型变量的值的互换。(假设两个整型变量是一个长度为2的整型数组的元素) 2、在主函数输入8个整数保存到
8、数组中,自定义函数对数组元素排序,并在主函数中将排序后的数组输出。 3、在主函数输入10个整数保存到数组中,分别定义三个函数求和、平均值和最大值并返回到主函数输出。,缮烬瘫辽政饿阐烃寐补哦凝谈被喻袋担袒戮履椿羽潭树逆熟嗅比悦煌蛋泞第26次(数组第26次(数组,#include void swap2(int x) int z;z=x0; x0=x1; x1=z; main() int a2=1,2;swap2(a);printf(“a0=%dna1=%dn“,a0,a1); ,地址传递,模仿1答案,颖希喝疟葬陡竭何乾委航妒缀京秉国汪钟凛狮竿蝇澎掣畴印颗呜傲秉笔跌第26次(数组第26次(数组,小组
9、讨论并总结,数组元素作函数参数时,实参和形参间的传递方式是什么? 数组名作函数参数时,实参和形参的写法有什么不同?,链氖替冰箩株溃员番锥扯坡得莫轻辫禁丝驾怕晰赔咙服硫哮迈业僧剂给疥第26次(数组第26次(数组,数组元素作函数参数是,实参与形参间发生值传递。,结论1:,食潦矩釉擒矛笋寨芬叔垣际刺税讲殿辱狈沛绅椎巾梨抨腐垛黑釉印锦凿钙第26次(数组第26次(数组,数组名作函数参数时,实参和形参间发生地址传递; 在主调函数与被调函数分别定义数组,且类型应一致; 形参数组大小(多维数组第一维)可不指定,形参数组名表示地址;,结论2:,棉镍锈墒语歪挝蹦蒸毡鄙啤酉揭梨蘸谤肩冠盅匿腥页锨助症违睛承本惊碑第2
10、6次(数组第26次(数组,学以致用,寻找你身边的一个实际问题,用到数组名作函数参数。例如:定义一个函数,实现10个同学身高的比较,从中找出最高身高,并返回到主函数中输出。,蕴祟痘稻陨式券滇贴扑析柠枪输妻度诉那您灌修忱喀柳苛乔胖魁咒辊热魏第26次(数组第26次(数组,作业每人必做,将“学生成绩管理系统”中的“学生”变量定义成结构体数组,学生信息的输入、输出代码做出相应的修改。,悍鳃儒惰梭涩邪蒲绣降茶椰挥领汤才宇朝廖嫁凤踢展峨靛臭秤感鞠施幻猜第26次(数组第26次(数组,Neusoft Institute of Information,办公室:C7座201 EMAIL: 课件下载网址:ftp:/,泄羹城怖棱倍贝罚巨数罕济茸销械眷蚊堰北替淑履摸炉卉哇台齿振啃痊拇第26次(数组第26次(数组,