编写求x的n次方的递归函数,并在主函数中调用、输出。 要求函数定义必须为:float rpow(float x, int n)

2025-03-10 22:26:19
推荐回答(3个)
回答1:

#include
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;
}

结果如下:

回答2:

#include
#include
float rpow(float x, int n)
{
if(n>0)
return x*rpow(x,n-1);
else if(n==0)
return 1;
else
return rpow(x,n+1)/x;
}
int main()
{
float c,m;
int b;
printf("请输入一个数和所要求得次方数:\n");
scanf("%f %d",&c,&b);
m=rpow(c,b);
printf("%f",m);
}

回答3:

是不是每次得出的结果都是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);

}