实验三 函数.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三 函数

实验三 函数调用 一、目的和要求 1.了解函数的定义方法,理解函数的调用; 2.初步掌握函数的递归、嵌套调用; 3.了解函数调用的实参与形参的传递,以及参数默认值的设置。 4.学习并了解重载函数、内联函数的基本概念。 二、实验设备及分组 1.? Windows2000 2.? Visual C++6.0 3.? PC机。 三、内容和步骤 (一)验证实验程序 1.编写一个函数,用递归的方法求1+2+3+4+…+n的值。在主函数中进行输入输出。 解: #include iostream.h int fun(int n) { int z; if(n=0) z=0; else z=n+fun(n-1); return(z); } void main(void) { int x,sum; cout请输入X的值endl; cinx; sum=fun(x); cout求和结果为:sumendl; } 运行结果: 请输入X的值 10 求和结果为:55 2.编写程序,输入m和n(nm),求的值。 分析:已知 根据公式,只要自定义一个函数计算阶乘,即可通过函数调用求出的值。 解: 阶乘函数定义如下: double fact(int k) { int p=1; if((k==0)||(k==1)) return p; else { for(int i=1;i=k;i++) p=p*i; return p; } } 一个完整的参考程序如下: #include iostream.h double fact(int); void main() { int m,n; double c; coutplease inputendl; l1: coutn=; cinn; coutm=; cinm; if (nm) { coutn must bigger than m!,please reinput:endl; goto l1; } c= fact(n)/( fact(m)* fact(n-m)); coutc=cendl; //B } double fact(int k) { int p=1; if((k==0)||(k==1)) return p; else { for(int i=1;i=k;i++) p=p*i; return p; } } 思考: ????????? 分别输入n=0,1,3,m=0,1,2测试程序。 ????????? 试用静态存储变量设计阶乘函数。 3.编写程序,求两个自然数m和n的最大公约数和最小公倍数。 分析: 最大公约数就是能同时整除m和n的最大正整数,可用欧几里德算法(也称辗转相除法)求解。应用欧几里德算法计算两个数的最大公约数的方法是:求两个数(m、n)相除的余数r(r=m/n mn),当余数不为零时,m取n的值,n取r的值,再求两个数相除的余数,反复进行直到余数为零,除数n是最大公约数。 最小公倍数=m×n/最大公约数。 解: #include iostream.h int fun1(int c,int d) { int r; r=c%d; while(r!=0) { c=d; d=r; r=c%d; } return d; } void main() { int m,n,e,d; coutm n=; cinmn; e=fun1(m,n); d=m*n/e; cout 最大公约数为:eendl; cout 最小公倍数为:dendl; } 思考: ????????? 输入两个数m=36,n=24观察程序运行结果。 ????????? 用递归调用的方法实现程序编写,参考程序如下: # include iostream.h int fun1(int c,int d) { int r; r=c%d; if(r!=0) { c=d; d=r; fun1(c,d); } return d; } void main() { int m,n,e,d; coutm n=; cinmn; e=fun1(m,n); d=m*n/e; cout 最大公约数为:eendl; cout 最小公倍数为:dendl; } ????????? 编写计算三个数最大公约数的程序。 4.分别输入整数半径和实数半径,使用函数重载计

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档