math.h库里有这个函数,pow(x,n),也可以自己用循环来写
创新互联建站专注于企业营销型网站、网站重做改版、尉氏网站定制设计、自适应品牌网站建设、H5高端网站建设、成都做商城网站、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为尉氏等各大城市提供网站开发制作服务。
long
fun(int
x,int
n)
{
long
p=1;
int
i;
for
(i=1;i=n;i++)
p*=x;
return
p;
}
在主函数main()中,直接调用fun函数即可
#includestdio.h
#includestring.h
float insertX(void)
{
float x;
printf("%s\n", "请输入底数 x:");
scanf("%f", x);
return x;
}
int insertN(void)
{
int n;
printf("%s\n", "请输入指数 n:");
scanf("%d", n);
return n;
}
float mypow(float x, int n)
{
float c = 1.0;
int i;
for(i=0; in; i++)
{
c *= x;
}
return c;
}
void print(float c)
{
printf("幂为:\n%.8f\n", c);
}
int main(void)
{
float x = insertX();
int n = insertN();
float c = mypow(x, n);
print(c);
system("pause");
return 0;
}
double pow(double x, double y);
pow()用来计算以x 为底的 y 次方值,然后将结果返回
可能导致错误的情况:
如果底数 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。
注意,使用 GCC 编译时请加入-lm。
#includestdio.h
#includemath.h
intmain()
{ printf("7 ^ 3 = %f\n",pow(7.0,3.0));
printf("4.73 ^ 12 = %f\n",pow(4.73,12.0));
printf("32.01 ^ 1.54 = %f\n",pow(32.01,1.54));
return0;}
输出结果:
7 ^ 3 = 343.000000
4.73 ^ 12 = 125410439.217423
32.01 ^ 1.54 = 208.036691
#includestdio.h
int power(int x,int n)
{
if(n==0)
return 1;
elseif(n%2==1)
return x*power(x,n-1);
else{
int y=power(x,n/2);
return y*y;
}
}
int main()
{
int a,b,c;
printf("enter x and n:");
setvbuf(stdout,NULL,_IONBF,0);
scanf("%d%d",a,b);
c=power(a,b);
printf("结果为%d",c);
return 0;
}
扩展资料
#includestdio.h
double power(double x,int n);
main()
{
double x;
int n;
printf("Input x,n:");
scanf("%lf,%d",x,n);
printf("%.2lf",power(x,n));
}
double power(double x,int n)
{
double a=1.0;
int i;
for(i=1;i=n;i++)
a*=x;
return a;
}
参考资料:百度百科 - 递归调用