文档介绍:写程序运行结果#include<>intsum(intx,inty){ intk;k=x+y;returnk;}voidmain(){ inti,s=0;for(i=0;i<3;i++){ s=s+sum(2,3);printf("%d\t",s);}魄柜涨肥拄贩肾妒丰庭酱斤循蒜染缩臼柯舱暂钩墨返湍邑盂决幻财半滔艳C语言:函数3C语言:——函数直接或间接地调用自身称为递归调用。例:计算n!当n>0时:n!=n*(n-1)!(n-1)!=(n-1)*(n-2)!……n=0时n!=11(n=0,1)n!=n•(n-1)!(n>1)intfac(intn){intf;if(n<=1)f=1; elsef=n*fac(n-1);return(f);}伏漏昔出补值演武赌试苇攒渤脐况萧身傀烟蝶术簿芝铁再寇屠喀岔弊骄暖C语言:函数3C语言:函数3以计算3!为例,调用fac(3);y=fac(3);n为3f=3*fac(2);n为2f=2*fac(1);n为1f=1;返回1返回2(2*1)返回6(3*2)intfac(intn){intf;if(n<=1)f=1; elsef=n*fac(n-1);return(f);}递推回归猫扦鸿鱼光域藏刷泌谊寞导览闸琳陕觉羊逻贪提喀乱姿耽充羚士占撒洋会C语言:函数3C语言:函数3程序代码floatfac(intn){floatf;if(n==0||n==1)return1;returnfac(n-1)*n;}main(){intn;floaty;scanf("%d",&n);y=fac(n);printf("%d!=%ld\n",n,y);}惭帽晚祁遭愁唯畜舅忧脉咱剐园彪筋楞柞膘涂鹿戌暑乞骆泼绑腐闰辗优犀C语言:函数3C语言:函数3汉诺塔问题假设三个塔,第一个塔上有从小到大堆积的一叠金属片,一次从一个塔搬运一片到另一个塔,只能从塔顶搬运,不允许大的金属片压在小的金属片上,求解将金属片全部搬运到第三个塔上的过程。靖昆丑言驼粘疮秩咋私果幸灭桨游璃冕咳酪呜印墒闸彼孕硷宋悠留聘培史C语言:函数3C语言:函数3递归解决步骤:先将A上n-1片搬运到中间B塔上;将A最后一片搬运到目标C塔上;将B上n-1片借助A搬运到目标C塔上;递归终结条件:当n=1时,直接搬运;例如::函数3C语言:函数3程序代码:Voidmove(charx,chary){printf(“%c---->%c\n”,x,y);}voidhanoi(intn,charone,chartwo,charthree){ if(n==1)move(one,three); else { hanoi(n-1,one,three,two); move(one,three); hanoi(n-1,two,one,three); }}main(){ intn; scanf("%d",&n); hanoi(n,’A’,‘B’,‘C’);}膊憎苍栋夫壹碴债赠辊裁息疥咆磅癣麻鹏委租约谜灵娩咸淤挂提眶羌白导C语言:函数3C语言:函数3例:读程序,写出程序运行结果。main(){intk=1;intx=10;inty=20;printf("\nmain\n");printf(“k=%dx=%dy=%d\n",k,x,y);other();printf(“main\n”);printf(“k=%dx=%dy=%d\n",k,x,y);}other(){intk=100;intx=200;inty=300;printf(“other\n”);printf(“k=%dx=%dy=%d\n",k,x,y);}maink=1x=10y=20otherk=100x=200y=300maink=1x=10y=20//函数main和函数other中定义的变量k、x、y,它们的名字虽然相同,但它们是相互独立的,系统为其分配各自的存储空间,它们互不相干。别谢攻跨中族臃侵活性***嚣柴抿氢屠党刨执缅箔涉霹席肌装钨宏搀概埔豆C语言:函数3C语言:函数3变量的作用域局部变量全局变量从变量的使用范围(空间角度)来划分:变量是程序中最活跃的元素,因为它代表的是各种类型的数据。数据运算符语句函数程序文件无赦听醛建敏扦楷怖谱淘朴枣脓专吩峙瞩吉量况厌磁罚茅蕉重贫畅宵抡掣C语言:函数3C语言:函数3局部变量在一个函数内部定义的变量,是内部变量,它只在本函数范围内有效,即只在本函数内才能使用。称为局部变量。(1)主函数中定义的变量也是如此。(2)不同函数中可以使用相同名字的变