资源描述:
《经典c程序(15-20)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、经典c程序(15/20)
2、第1lunain(){longge,shi,qian,p;x);p;shi==qian)/*个位等于万位并且十位等于千位*/ printf("thisnumberisahuiberisnotahuiain(){longa,b,c,d,e,x;scanf("%ld",x);a=x/10000;/*分解出万位*/b=x%10000/1000;/*分解出千位*/c=x%1000/100;/*分解出百位*/d=x%100/10;/*分解出十位*/e=x%10;/*分解出个位*/if(a!=0)printf
3、("thereare5,%ld%ld%ld%ld%ld/n",e,d,c,b,a);elseif(b!=0)printf("thereare4,%ld%ld%ld%ld/n",e,d,c,b); elseif(c!=0)printf("thereare3,%ld%ld%ld/n",e,d,c); elseif(d!=0)printf("thereare2,%ld%ld/n",e,d); elseif(e!=0)printf("thereare1,%ld/n",e);}题目:有5个人坐在一起,问第五个人多少
4、岁?他说比第4个人大2岁。问第4个人岁数,他说比第 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 问第一个人,他说是10岁。请问第五个人多大?1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道 第四人的岁数,依次类推,推到第一人(10岁),再往回推。2.程序源代码:age(n)intn;{intc;if(n==1)c=10;elsec=age(n-1)+2;return(c);}main(){printf("%d",age(5));
5、}题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。1.程序分析:2.程序源代码:#include"stdio.h"main(){inti=5;voidpalin(intn);printf("/40:");palin(i);printf("/n");}voidpalin(n)intn;{charnext;if(n<=1) { next=getchar(); printf("/n/0:"); putchar(next); }else { next=getchar(); palin(n-1); putc
6、har(next); }}题目:利用递归方法求5!。1.程序分析:递归公式:fn=fn_1*4!2.程序源代码:#include"stdio.h"main(){inti;intfact();for(i=0;i<5;i++) printf("/40:%d!=%d/n",i,fact(i));}intfact(j)intj;{intsum;if(j==0) sum=1;else sum=j*fact(j-1);returnsum;}