#includestdio.h//编译预处理
成都创新互联公司公司2013年成立,先为沛县等服务建站,沛县等地企业,进行企业商务咨询服务。为沛县企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
int age(int n)//定义age函数
{
int c;//定义整形变量C
if (n==1) c=10;//当n的值为1时候,c=10(这是一个递归函数,n==1的时候是他的出口)
else c=age(n-1)+3;
/*当n不等于1时候,把形参减一,值加3再次运行,例如age(6)就是等于age(5)+3然后以这个规律age(4),age(3)...当出现age(1)的时候,age(1)的返回值就是10,递归结束,age(6)=age(5)+3=age(4)+3+3....=age(1)+3+3+3+3+3=25*/
return c;
}
void main()
{
printf("\n%d", age(6));//输出age(6)的值,为25
}
struct Date{
int year;
int month;
int day;
};
Date * fun(Date *date){
Date today;
today.year = 2013;
today.month = 7;
today.day = 1;
Date age;
age.year = today.year - date-year;
age.month = today.month - date-month;
age.day = today.day - date-day;
return age;
}
int main(){
Date me;
me.year = 1980;
me.month = 6;
me.day = 12;
Date * age = fun(me);
printf("%d%d%d",age-year,age-month,age-day);
return 0;
}
#include stdio.h
int main(void) {
int z = 0;
int a = 0;
scanf("%d", a);
z = age(a);
printf("age is %d", z);
return 0;
}
int age(int n) {
int z = 0;
if (n = 1) {
z == 10;
} else {
z = age(n - 1) + 2;
}
return z;
}
这是递归运算,当运行到age(n-1)时,会将n-1的值传递到age函数中再执行此函数,此时age(int n)中的n就等于n-1;下面的依次循环,直到n==1,执行顺序如下:
n=5时,运行到age(4)+2,此时调用age(4),
n=4,运行到age(3)+2,此时调用age(3),
n=3,运行到age(2)+2,此时调用age(2),
n=2,运行到age(1)+2,此时调用age(1),
n=1时,c=10,return c 即返回10.现在将10返回到调用age(2)时的age(1)+2,即c=age(1)+2
c=12,再return 12,返回到调用age(3)时的age(2)+1,c=age(2)+2,此时c=14,····这样一直返回到n=5的情况,此时c=18
}
可以,实参与形参的类型相同或赋值兼容, 变量c的类型应该与函数age()的返回值类型相同,详解课参阅 清华出版的 谭浩强编著的c语言教材的 第158页
这是一个递归函数。
1.你如果输入的是2,那么在第一个age(2)里就会执行else语句,就是再调用age(2-1)==age(1),再age(1)里你知道是咋样吧,
2.然后age(1)就会传回10,你记得是age(2)里的else c=age(n-1)+2调用的吧,返回的10就变成了c=10+2呸,如果你输入5啊啥的就回多激磁遮掩的步骤.
3.这个递归归函数的作用就是输入n,得到10+2*(n-1).