求x的n次方函数c语言 c语言中x的n次方怎么写

c语言怎样计算x的n次方?

区分x和n的类型,以及对结果的要求,可以有如下两种方式。

在赤壁等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、成都网站设计 网站设计制作定制网站,公司网站建设,企业网站建设,高端网站设计,营销型网站建设,成都外贸网站制作,赤壁网站建设费用合理。

1 使用pow函数。

在C语言的标准头文件math.h中,有库函数pow,声明为

double pow(double x, double n);

其功能为计算x的n次方并返回结果。

所以可以用pow计算x的n次方。

该函数适用于以下几种情况:

a. 当n为浮点数类型时,必须使用pow。

b. 当x为浮点数或对结果值精度要求不高时,可以使用pow。

2 当x和n均为整型,且对结果要求绝对准确值,而不能是近似值时,可以自行编写整型乘方函数。

int pow_int(int x, int y)

{

int r = 1;

while(y--) r*=x;

return r;

}

其原理为,将x自乘y次,并将结果累计到r上,最终返回。

需要注意的是,使用该种方法时虽然可以得到准确值,但由于int可以表示的范围比double小很多,所以出现溢出的概率要比pow函数更大。

用C语言程序设计:求x的n次方的函数。

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

C语言如何计算x的n次方

#include "stdio.h"

void main()

{

int x,n;

long sum=1;

printf("请输入x:");

scanf("%d",x);

printf("请输入n:");

scanf("%d",n);

printf("%d的%d次方是",x,n);

for(int i=1;i=n;i++)

    sum*=x;

printf("%d\n",sum);

}

C语言 用递归方法求X的n次方

#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;

}

参考资料:百度百科 - 递归调用


网站标题:求x的n次方函数c语言 c语言中x的n次方怎么写
浏览路径:http://hbruida.cn/article/ddgsghs.html