递归函数计算x^n#include double fun(int n,double x);int main(void){\x05int n;\x05double x,root;\x05scanf("%lf%d",&x,&n);\x05root = fun(n,x);\x05printf("Root = %0.2f\n",root);}double fun(int n,double x){\x05int y;\x05\x05\x05if(n==1) return x;\x0
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 02:52:18
![递归函数计算x^n#include double fun(int n,double x);int main(void){\x05int n;\x05double x,root;\x05scanf(](/uploads/image/z/6456368-56-8.jpg?t=%E9%80%92%E5%BD%92%E5%87%BD%E6%95%B0%E8%AE%A1%E7%AE%97x%5En%23include+double+fun%28int+n%2Cdouble+x%29%3Bint+main%28void%29%7B%5Cx05int+n%3B%5Cx05double+x%2Croot%3B%5Cx05scanf%28%22%25lf%25d%22%2C%26x%2C%26n%29%3B%5Cx05root+%3D+fun%28n%2Cx%29%3B%5Cx05printf%28%22Root+%3D+%250.2f%5Cn%22%2Croot%29%3B%7Ddouble+fun%28int+n%2Cdouble+x%29%7B%5Cx05int+y%3B%5Cx05%5Cx05%5Cx05if%28n%3D%3D1%29+return+x%3B%5Cx0)
递归函数计算x^n#include double fun(int n,double x);int main(void){\x05int n;\x05double x,root;\x05scanf("%lf%d",&x,&n);\x05root = fun(n,x);\x05printf("Root = %0.2f\n",root);}double fun(int n,double x){\x05int y;\x05\x05\x05if(n==1) return x;\x0
递归函数计算x^n
#include
double fun(int n,double x);
int main(void)
{
\x05int n;
\x05double x,root;
\x05scanf("%lf%d",&x,&n);
\x05root = fun(n,x);
\x05printf("Root = %0.2f\n",root);
}
double fun(int n,double x){
\x05int y;
\x05
\x05
\x05if(n==1) return x;
\x05else y=fun(n-1,x)*x;
\x05
\x05return y;
\x05
}
这段程序提交上去显示答案错误
但是把后面改成
double fun(int n,double x){
\x05int y;
\x05
\x05
\x05if(n==1) return x;
\x05else return fun(n-1,x)*x;
\x05
}
就对了
为什么呢.
递归函数计算x^n#include double fun(int n,double x);int main(void){\x05int n;\x05double x,root;\x05scanf("%lf%d",&x,&n);\x05root = fun(n,x);\x05printf("Root = %0.2f\n",root);}double fun(int n,double x){\x05int y;\x05\x05\x05if(n==1) return x;\x0
fun函数是double类型的,而返回的y是int类型,二者不匹配,将y强制为double类型就可以了