
编写求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);
}
我的这个哪里错了? 展开
#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);
}
我的这个哪里错了? 展开
展开全部
#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);
}
#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);
}
本回答被网友采纳

你对这个回答的评价是?
展开全部
是不是每次得出的结果都是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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询