关于C语言中n次幂函数的用法

2020-06-11 教育 108阅读

#include

int power(int n,int p);

void main()

{ int S[8];

int i=0;

int n=2;

printf("The results is:\n");

for(i=0;i<8;i++)

{

S[i]=power(n,i+1);//调用函数

printf("%d\n",S[i]);

}

printf("That's all\n");

}

int power(int n,int p)

{

int pow=1;

int i;

for(i=0;i<=p;i++)

pow*=n;

return pow;

}

在调用:S[i]=power(n,i); 之前,i未初始化,可以手动输出来看一下,值结果是随机的,并不一定是0。

编译会提示:Warning: Possible use of 'i' before definition in function main在do{}while;中,开关i值并未改变,若i<8成立,那么程序就会变成死循环。

一开始的那个i没有初始化,s[i]不知道用哪里的内存了。还有每次循环后记得i++。

扩展资料:

注意事项

pow() 函数用来求 x 的 y 次幂(次方),其原型为:double pow(double x, double y);

pow()用来计算以x 为底的 y 次方值,然后将结果返回。设返回值为 ret,则 ret = xy。

可能导致错误的情况:

如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error 错误。

如果底数 x 和指数 y 都是 0,可能会导致 domain error 错误,也可能没有;这跟库的实现有关。

如果底数 x 是 0,指数 y 是负数,可能会导致 domain error 或 pole error 错误,也可能没有;这跟库的实现有关。

如果返回值 ret 太大或者太小,将会导致 range error 错误。

错误代码:

如果发生 domain error 错误,那么全局变量 errno 将被设置为  EDOM;

如果发生 pole error 或 range error 错误,那么全局变量 errno 将被设置为 ERANGE。

Math.pow(底数,几次方)

如:double a=2.0;

  double b=3.0;

double c=Math.pow(a,b);

就是2的三次方是多少;

c最终为8.0;

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com