




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,第五章实训,函数三要素:函数声明、函数调用、函数定义有参函数、无参函数有返回值的函数,无返回值的函数参数传递:值传递(普通变量和数组元素)、地址传递(数组名)变量的作用域(全局变量、局部变量)变量的生存期(auto/static/register/exern),.,1、寻找四位数的超级素数。超级素数的定义为:若一个素数从低位到高位依次去掉一位后的数仍为素数。例如,数2333是素数,且233,23,2均为素数,所以2333是一个超级素数。,解:此题的思路为:(1)从1001到9999,循环判断每个数是否为超级素数(sup_prime)。(2)关键算法一(sup_prime):先判断n是否为素数(prime),如果是的话,则去掉低位后接着判断,如果是,接着去掉低位后判断,否则结束。直到n=0为止。(3)关键算法二(prime):如何判断一个数是否为素数,.,intprime(intn)inti;if(n=1)return0;for(i=2;i0)if(prime(n)n=n/10;elsereturn0;return1;,.,#include#includeintprime(int);intsup_prime(int);voidmain()inti;for(i=1001;i10000;i+=2)if(sup_prime(i)printf(%5d,i);printf(n);,.,编程作业一:定义一个函数,其功能是计算n个学生的成绩中,高于评价成绩的人数,并作为函数值。用主函数来调用它,统计50个学生成绩中,高于平均成绩有多少人?,解:此题的思路为:(1)用一维数组存放50个学生的成绩,输入成绩(可以定义为函数input),用另一个函数计算平均成绩(average),再用另一个函数来判断高于平均成绩的人数(highpeople)(2)input函数:地址传递(3)average函数:地址传递与值传递相结合,返回高于平均成绩的人数,.,#include#defineN5inthighpeople(float,float);floataverage(float);voidinput(float);voidmain()floatscore5,avg;intn;input(score);avg=average(score);n=highpeople(avg,score);printf(高于平均成绩%.2f的人数为%dn,avg,n);,.,voidinput(floatscore)inti;for(i=0;iN;i+)printf(a%d=,i);scanf(%f,.,floataverage(floatscore)inti;floatsum=0;for(i=0;iN;i+)sum+=scorei;returnsum/N;,.,inthighpeople(floatavg,floatscore)intn=0,i;for(i=0;iavg)n+;returnn;,.,编程作业二:编写一个对n个数据从大到小排序的C函数,再编写一个计算最后得分的C函数,计算方法是,取出一个最高分,取出一个最低分,其余的平均分为参赛选手的最后得分。并在主函数中调用他们对有n个评委评分,m个选手参赛的最后得分,从大到小排序输出。,解:此题的思路为:(1)用一维数组存放m个评委对某个选手的评分,然后对这个一维数组进行排序(sort函数),接着计算成绩(computer函数)并存入另一个一维数组的元素中。上面的过程重复n次。最后对存放成绩的长度为n的一维数组进行排序(sort函数),然后输出即可。(2)sort函数:需要对存放成绩的一维数组的前m位进行排序(3)computer函数:需要计算一维数组的m-2个元素的和的平均数,其函数原型为:voidsort(float,int),其函数原型为:floatcomputer(float,int),.,voidsort(floata,intm)inti,j,min;floatt;for(i=0;im-1;i+)min=i;for(j=i+1;jm;j+)if(ajamin)min=j;if(min!=i)t=ai;ai=amin;amin=t;,.,floatcomputer(floata,intm)inti;floatsum=0;for(i=1;im-1;i+)sum+=ai;returnsum/(m-2);,.,#include#defineN10voidsort(float,int);floatcomputer(float,int);voidmain()floataN,bN;intm,n,i,j;doprintf(inputn:);/n个选手scanf(%d,.,for(i=0;in;i+)printf(请输入第%d个选手的成绩:n,i);for(j=0;j=0;i-)printf(%.2f,bi);printf(n);,.,4、以下程序的功能是应用下面的近似公式计算e的n次方。函数f1用来计算每项分子的值,函数f2用来计算每项分母的值。请编写f1和f2函数。,计算前20项,解:此题的思路为:(1)在主函数中确定x的值,然后循环19次计算sum(初值=1),sum的计算公式即sum+=f1/f2(2)f1函数:需要两个参数,一个x,一个幂指数,都是值传递,且要返回值(3)f2函数:需要一个参数n,可以使用递归调用,.,floatf1(intx,intn)inti;floatsum=1;for(i=1;i=n;i+)sum=sum*x;returnsum;,returnpow(x,n);,.,floatf2(intn)if(n=1)return1;elsereturnf2(n-1)*n;,.,#include#includefloatf1(int,int);floatf2(int);voidmain()floatsum=1;intx,n;printf(inputx:);scanf(%d,.,5、设计一个函数,输出整数n的所有素数因子。,解:此题的思路为:(1)在主函数中输入n的值,然后调用自定义函数(factor)来确定其素数因子。(2)factor函数:从2到n的所有数中,找到所有满足条件n%x=0的x,且x是素数(prime函数)(3)prime函数:判断一个整数是否为素数,.,intprime(intn)inti=2,flag=1;for(;i=sqrt(n);i+)if(n%i=0)flag=0;break;returnflag;,.,voidfactor(intn)inti=2;while(i=n)if(n%i=0,.,#include#includevoidfactor(int);intprime(int);voidmain()intn;printf(inputn:);scanf(%d,.,6、若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B构成一对亲密数。求500以内的所有亲密数。,解:此题的思路为:(1)编制一个函数facsum(int),返回给定正整数m的所有因子之和(2)编制一个主函数,调用facsum函数,寻找并输出500以内的所有亲密数对,且去掉所有重复的亲密数对。,.,intfacsum(intm)intsum=1,f=2;while(f=m/2)if(m%f=0)sum+=f;f+;returnsum;,.,#includeintfacsum(int);voidmain()intm=3,n,k;while(m=500)n=facsum(m);k=facsum(n);if(m=k,.,7、求两个数的最大公约数,intgcd(intm,intn)if(m%n=0)returnn;elsereturngcd(n,m%n);,.,8、编写一个程序,完成写了各项操作:(1)输入一个包含n个整数的数列;(2)输出已经输入的整数数列;(3)将整数数列按照非递减的顺序重新排列(4)计算n个整数中的最大值,并输出;(5)计算n个整数中的最小数,并输出;(6)计算n个整数中的平均值,并输出,input,output,sort,an-1,a0,average,.,#include#defineN100voidinput(int,int);voidoutput(int,int);voidsort(int,int);floataverage(int,int);voidmain()intn,aN;printf(inputn:);scanf(%d,.,voidinput(inta,intn)inti;for(i=0;in;i+)printf(a%d=,i);scanf(%d,.,voidoutput(inta,intn)inti;printf(arraya:n);for(i=0;in;i+)printf(%5d,ai);printf(n);,.,voidsort(inta,intn)inti,j,min,t;for(i=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年产20万吨本色浆替代废纸浆项目建议书(参考)
- 纳米银导电膜建设项目建议书(范文模板)
- 2022年保护地球倡议书15篇
- 加强失能老年人健康服务的综合支持
- 货运站场转型升级可行性研究报告(模板范文)
- 公交专用道优化项目可行性研究报告
- 广东青年职业学院《制药设备及工程设计》2023-2024学年第二学期期末试卷
- 福建体育职业技术学院《建设工程工程量清单计价实务》2023-2024学年第二学期期末试卷
- 江西医学高等专科学校《资源设备基础》2023-2024学年第二学期期末试卷
- 学生文明礼仪教育主题班会
- 妇科常见疾病及护理常规
- 化工设备巡检培训
- 2024银行从业资格个人贷款教材
- 2024中国电信通信传输设备与线路维护服务采购协议3篇
- 空气源热泵培训资料
- T∕HGJ 12400-2021 石油化工仪表线缆选型设计标准
- T-CBIA 009-2022 饮料浓浆标准
- DB64-266-2018:建筑工程资料管理规程-201-250
- 2025届高三地理一轮复习课件第二部分+4.2区域发展对交通运输布局的影响
- 2024年无人机飞行表演服务合同
- 2024年普通高等学校招生全国统一考试(新高考I卷)
评论
0/150
提交评论