c++编写求x的n次方的递归函数,并在主函数中调用、输出。 函数定义必须为:float rpow(float x, int n)
#include<stdio.h>floatrpow(floatx,intn){floatt;if(n==0)t=1;if(n>0)t=x*rpow(x,n-1);els...
#include<stdio.h>
float rpow(float x,int n)
{
float t;
if(n==0)
t=1;
if(n>0)
t=x*rpow(x,n-1);
else
t=(1/x)*rpow(x,n+1);
return t;
}
int main()
{ float x,t; int n;
printf("请输入x和n");
scanf("%f",&x);
scanf("%d",&n);
t=rpow(x,n);
printf("%f",t);
return 0;
}求改错! 展开
float rpow(float x,int n)
{
float t;
if(n==0)
t=1;
if(n>0)
t=x*rpow(x,n-1);
else
t=(1/x)*rpow(x,n+1);
return t;
}
int main()
{ float x,t; int n;
printf("请输入x和n");
scanf("%f",&x);
scanf("%d",&n);
t=rpow(x,n);
printf("%f",t);
return 0;
}求改错! 展开
1个回答
展开全部
是不是每次得出的结果都是1?
哈哈,因为最终n都会等于0的,那时候你令t=1,然后return t,当然返回1咯。
float rpower(float x, int n)
{
if (n == 0)
return 1;
else if (n > 0)
return x * rpower(x, n-1);
else
return 1/x * rpower(x, n+1);
}
哈哈,因为最终n都会等于0的,那时候你令t=1,然后return t,当然返回1咯。
float rpower(float x, int n)
{
if (n == 0)
return 1;
else if (n > 0)
return x * rpower(x, n-1);
else
return 1/x * rpower(x, n+1);
}
追问
不是的。编译以后显示的是windows无法解决该项问题。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询