为了账号安全,请及时绑定邮箱和手机立即绑定

递归函数还是不太懂,请问我这么写错在了那里?

递归函数还是不太懂,请问我这么写错在了那里?

C
慕粉3374841 2016-11-11 15:57:03
#include <stdio.h> int peopleage(n) if(n==1) int age; {     age=10;     return 1; } else {     age= peopleage(n-1)+2;     } return age;int main() {    fifth=peopleage(5); printf("第5个人的年龄是%d岁", fifth);  return 0;}
查看完整描述

3 回答

已采纳
?
Lemon156

TA贡献91条经验 获得超32个赞

#include <stdio.h> 
int peopleage(n)
{
	 int age;
	 if(n==1){
		 age=10;
		 return 10;
	 }else{
		 age= peopleage(n-1)+2;
		
	 }
	 return age;
	 
}

int main() 
{
	int fifth=peopleage(5);
	printf("第5个人的年龄是%d岁", fifth); 
	return 0;
}


正确代码应该是这样的,

你的代码里存在错误:1.代码格式应该尽量清晰一点2.定义函数没有大括号;3.定义变量的位置不对4.主函数中的fifth变量是需要先定义再赋值的

望采纳

查看完整回答
反对 回复 2016-11-11
?
望远

TA贡献1017条经验 获得超1032个赞

#include <stdio.h> 
int peopleage(int n)
{
     int age;
     if(n==1){
         return 10;
     }else{
         age= peopleage(n-1)+2;
         
     }
 return age;
      
}
int main() 
{
    int fifth=peopleage(5);
    printf("第5个人的年龄是%d岁\n", fifth); 
    return 0;
}

//img1.sycdn.imooc.com//58258e850001360203370083.jpg

查看完整回答
反对 回复 2016-11-11
?
onemoo

TA贡献883条经验 获得超454个赞

完整代码就是这样吗?

是的话,就错在你的代码“不完整”:

peopleage的函数体大括号去哪里了??


其中if语句的语法也错了,把 if 和下面 声明age那行 交换一下

查看完整回答
反对 回复 2016-11-11
  • 3 回答
  • 0 关注
  • 1376 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信