
关于C语言中n次幂函数的用法
#include<stdio.h>
double power(double n,int p);
void main()
{ int S[8];
int i;
double n=2;
printf("The results is:\n");
do
{
S[i]=power(n,i);//调用函数
printf("%d\n",S[i]);
}
while(i<8);
printf("That's all\n");
}
double power(double n,int p)
{
double pow=1;
int i;
p=8;
n=2;
for(i=0;i<p;i++)
pow*=n;
return pow;
} 在VC里调试显示没有错误但 运行时 编译器却自动停止运行..是不是我函数用错了 求指教 非常感谢 展开
#include<stdio.h>
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;
C语言中计算某个数x的n次幂用pow函数。
功能:返回指定数字的指定次幂.
用法:pow (double x, double n);(将返回x的n次幂)
示例:
#include<math.h>
#include<stdio.h>
int main()
{
double x=2.0,y=3.0;
printf("%lf的%l次幂是:%lf\n",x,y,pow(x,y));
return 0;
}
推荐于2017-09-12
编译会提示:Warning: Possible use of 'i' before definition in function main
2,在do{}while;中,开关i值并未改变,若i<8成立,那么程序就会变成死循环。
void main()
{ int S[8];
int i=0;
double n=2;
printf("The results is:\n");
do
{//int a=0;
S[i]=power(n,i);//调用函数
printf("%d\n",S[i]);
i++;
}当我把前面部分定义 i 后为什么输出 八个值都是256 我的n次幂函数 没起到原先设计的作用
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;
}