- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课堂练习 写一个函数,输入一个4位数字,要求输出这四个数字字符,但每两个数字之间空一个空格。如输入2013,应该输出“2 0 1 3”。 课堂练习 编程实现1-100的累加。 要求使用自定义函数,该函数可求自然数m-n的累加和,m、n由用户从键盘输入。 #include stdio.h int sum(int m,int n); int main( ) {int a,b,c; scanf(“%d%d”,a,b) c=sum(a,b); printf(“%d到%d的自然数之和=%d,a,b,c); return 0; } int sum(int x,int y) {int i,s=0; i=x; while(i=y) { s=s+i; i++; } return s; } 递归的实现–Hanoi塔 汉诺塔问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。 取N=64。这样,需移动264-1次。 如果一秒钟能移动一块圆盘,仍将需5845.54亿年。目前按照宇宙大爆炸理论的推测,宇宙的年龄仅为137亿年。 递归的实现–Hanoi塔 后来,这个传说就演变为汉诺塔游戏: 1.有三根杆子A,B,C。A杆上有若干碟子 2.每次移动一块碟子,小的只能叠在大的上面 3.把所有碟子从A杆全部移到C杆上 汉诺塔的破解很简单,就是按照移动规则向一个方向移动金片。 递归的实现–Hanoi塔 问题求解是递归的—Hanoi塔void hanoi(int n, char a, char b, char c)n-圆盘数 a-源塔座b-中介塔座 c-目标塔座 搬动方法 n=1, a-c n1:hanoi(n-1, a, c, b)a-chanoi(n-1, b, a, c) 注意用递归调用的结果,不关注该结果如何获得的细节 课堂练习 小猴子第一天摘下若干桃子,当即吃掉一半,又多吃一个.第二天早上又将剩下的桃子吃一半,又多吃一个.以后每天早上吃前一天剩下的一半另一个.到第10天早上猴子想再吃时发现,只剩下一个桃子了.问第一天猴子共摘多少个桃子? 递推方法——循环结构 #includestdio.h int main() { int i,s=1; for(i=9;i=1;i--) {s=(s+1)*2; printf(第%d天有%d个桃子\n,i,s); } return 0; } 函数递归调用——取代循环结构 #includestdio.h int f(int n) { int s; if(n==10) s=1; else s=(f(n+1)+1)*2; return s; } int main() { printf(第1天有%d个桃子\n,f(1)); return 0; } 课堂练习 写一个函数,可对任意个整数进行起泡排序(升序,降序可选) 附录 编译和运行包括多个文件的程序(以课本p216例7.20为例) 7.8.2全局变量 在函数内定义的变量是局部变量,而在函数之外定义的变量称为外部变量 外部变量是全局变量(也称全程变量) 全局变量可以为本文件中其他函数所共用 有效范围为从定义变量的位置开始到本源文件结束 弓慈舌洼抬靛簇钾买论倪妊墟峙莫渔鞋梯捌奋拢侨企莹确搁蓉勺馁弱搪帝C语言 第7章 用函数实现模块化程序设计C语言 第7章 用函数实现模块化程序设计 int p=1,q=5 float f1(int a) { int b,c; …… } char c1,c2; char f2 (int x, int y) { int i,j; …… } int main ( ) { int m,n; …… return 0; } p、q、c1、c2为全局变量 放政舆千孙段巢狰音魏荧荡铆慈匣摘狱共挣根十酬腊美枢差求艇轰逆暖磺C语言 第7章 用函数实现模块化程序设计C语言 第7章 用函数实现模块化程序设计 int p=1,q=5 float f1(int a) { int b,c; …… } char c1,c2; char f2 (int x, int y) { int i,j; …… } int main ( ) { int m,n; …… retu
文档评论(0)