c++编写求x的n次方的递归函数,并在主函数中调用、输出。 函数定义必须为:float rpow(
c++编写求x的n次方的递归函数,并在主函数中调用、输出。函数定义必须为:floatrpow(floatx,intn)#include<stdio.h>floatrpow...
c++编写求x的n次方的递归函数,并在主函数中调用、输出。 函数定义必须为:float rpow(float x, int n)
#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;
}求改错! 展开
#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;
}求改错! 展开
1个回答
展开全部
#include<stdio.h>
float rpow(float x,int n)
{
// 这里初始化下
float t = 0;
// 如果等于0,则返回1
if (n==0)
{
return 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;
}
结果如下:
更多追问追答
追问
为什么需要这样初始化呢
追答
C/C++变量在定义的时候,默认值是随机的,所以要初始化。和JAVA不同,在JAVA里,变量都是有默认值的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询