#includevoidmain(){intmax_4(inta,intb,intc,intd);inta,b,c,d,max;printf("Pleaseenter4intergernumbers:");scanf("%d%d%d%d",&a,&b,&c,&d);max=max_4(a,b,c,d);printf("max=%d\n",max);}intmax_4(inta,intb,intc,intd){intmax_2(inta,intb);intm;m=max_2(a,b);m=max_2(m,c);m=max_2(m,d);return(m);}intmax_2(inta,intb){return(a>b
a:b);}7
6函数的递归调用函数的递归调用或a(x){……b();……}b(){……a(y);/*间接的递归调用*/……}C语言中,允许函数直接或间接地调用自己,这种调用方式称为函数的递归调用
C语言的特点之一就在于它允许函数的递归调用
其一般形式为:a(x){……a(y);/*直接的递归调用*/……}intage(intn){intc;if(n==1)c=10;elsec=age(n-1)+2;return(c);}#includevoidmain(){printf("%d\n",age(5));}例7
6有5个人坐在一起,第5个从比第4个人大2岁,第4个比第3个人大2岁,…,第1个人是10岁
问第5个人多大
算法分两个阶段;第一阶段为“回溯”第二阶段为“递推”
不应出现无终止的递归调用,因此,应该给定一个限制递归次数的条件
递归调用对应的一般算法:f(x)=终了公式递归公式#includevoidmain(){longfac(intn);intn;longy;printf("inputanintegernumber:");scanf("%d",&n