www.whkt.net > C++ 语言 DouBlE powEr(DouBlE x, int n){ DouBlE ...

C++ 语言 DouBlE powEr(DouBlE x, int n){ DouBlE ...

定义了一个名叫power的函数,他有两个形参,分别为x和n.函数的返回值是double类型的.

一定要用嵌套吗?double power(double x,int n){ int a,sum=1; for(a=0;a<=n;a++) sum *= x; printf("%f",x);}或者double power(double x,int n){ if(n==0) return 1; else return x*power(x,n-1):}

两个问题:一个是power内的,既然用了嵌套就不需要用循环,用了循环就不用嵌套.二是输入的格式,m是double,那么格式要用%lf,而不是%f,否则不能正确获得输入值.另外,按照原程序中scanf的写法,输入时一定要以“,”分隔两数(不能以空格分隔),比如:5,2.程序修改如下(都没考虑0的0次方这种情况):#include double power(double x,int n){ //int a; //for(a=1;a 评论0 9 0

double power_negative(double n,int p){ double pow = 1; int q; q=-p; if(q>0) pow = power_negative(n,1-q) / n; return pow;}改成这样,虽然你那个写的是递归调用,但是返回的却是1/pow,那么就会是0.5 * 2 * 0.5 * 2 * 0.5这样的形式返回,所以最终无论是多少,结果都是0.5,而且递归时应该用1-q,因为你调用负数求幂,必须使参数为负才会正确

我按我的理解改了一下你的程序: #include double power(double n,int p); int main(void) { double x,xpow,tp; int exp; printf("enter a number and the integer power to which\n"); printf("the number will be raised.enter q to quit.\n"); while(scanf("%lf

这个好像是计算乘方的函数 double power(double x,int n) { double val=1.0; //声明一个值为1.0的双精度变量val while(n--) //从n到0进行循环(循环n次) val*=x; //每次循环val都乘以x一次 return(val); //返回val的值(x的n次方) 这个程序的输出结果是5的2次方,是25 } 这个power函数才是具体实现乘方计算的函数,在主函数里面 int main() { cout<<power(5,2)<<endl; //调用了power函数 return 0; }

double power(float x,int n) { double ans=1; int i; for(i=1;i return ans; }

double power(double x,int n) { double m=1.00; for(int i=0;i<n;i++) m*=x; return m; }

//用sinx=x-x^3/3!+x^5/5!……+(-1)^(n-1)*(x^(2*n-1)/(2*n-1)!#include#includeusing namespace std;double power(double x,int n){ if(n==0) return 1; return x*power(x,n-1);}long f(int n){ if(n==0) return 1; else return n*f(n-1);}int main(){ float x,t,sum=0;int i=

power函数没有函数体,需写上函数体.

相关搜索:

网站地图

All rights reserved Powered by www.whkt.net

copyright ©right 2010-2021。
www.whkt.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com