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

#include<stdio.h>#include<stdlib.h>floatrpow(floatx,intn){floata;if(n<0){a=x*rpow(x,n... #include <stdio.h>
#include <stdlib.h>
float rpow(float x, int n)
{
float a;
if (n<0)
{
a=x*rpow(x,n+1);
}
else if (n==0)
a=1;
else a=x*rpow(x,n-1);
return a;
}
int main()
{
float c,m;
int b;
printf("请输入一个数和所要求得次方数:\n");
scanf("%lf%d",&c,&b);
m=rpow(c,b);
printf("5%f",m);
}
我的这个哪里错了?
展开
 我来答
ahcc08
2014-05-08 · 知道合伙人软件行家
ahcc08
知道合伙人软件行家
采纳数:11853 获赞数:51946
拥有丰富的软件开发经验。

向TA提问 私信TA
展开全部
#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;
}

结果如下:

百度网友f3b3e02
推荐于2018-04-19 · TA获得超过2156个赞
知道小有建树答主
回答量:821
采纳率:90%
帮助的人:599万
展开全部
#include <stdio.h>
#include <stdlib.h>
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);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
烟花的尽头
2014-05-07 · TA获得超过646个赞
知道小有建树答主
回答量:170
采纳率:76%
帮助的人:62.9万
展开全部
是不是每次得出的结果都是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);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式