
int f(int x) {int y; if (x==0||x==1) return (3); else y=x*x-f(x-2); return y; } main( )
展开全部
#include<stdio.h>
int f(int x)
{
int y;
if(x==0||x==1)
return(3);
else
y=x*x-f(x-2); //递归调用,当x=3时,y=3*3-f(1),再次调用f,这时x为1,返回3给f(1),再执行y=3*3-3,因此y=6
return y;
}
main( )
{
printf ("%d\n",f(3));//调用f这个函数,同时把3传过去
}
int f(int x)
{
int y;
if(x==0||x==1)
return(3);
else
y=x*x-f(x-2); //递归调用,当x=3时,y=3*3-f(1),再次调用f,这时x为1,返回3给f(1),再执行y=3*3-3,因此y=6
return y;
}
main( )
{
printf ("%d\n",f(3));//调用f这个函数,同时把3传过去
}
展开全部
你把第二个 return 写上返回值,不然,这个递归过程只要执行了return (3);这句话,无论最终结果是什么,都只会返回3的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C
你要是学了C或C++应该很容易解决啊
你要是学了C或C++应该很容易解决啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
f(3-2)= 3 f(3)=3*3-f(1)=6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询