用C语言求幂函数和指数函数的方法
C语言pow()函数:求x的y次方(次幂)
头文件:
#include<math.h>
pow()函数用来求x的y次幂(次方),其原型为:
doublepow(doublex,doubley);
pow()用来计算以x为底的y次方值,然后将结果返回。设返回值为ret,则ret=xy。
可能导致错误的情况:
- 如果底数x为负数并且指数y不是整数,将会导致domainerror错误。
- 如果底数x和指数y都是0,可能会导致domainerror错误,也可能没有;这跟库的实现有关。
- 如果底数x是0,指数y是负数,可能会导致domainerror或poleerror错误,也可能没有;这跟库的实现有关。
- 如果返回值ret太大或者太小,将会导致rangeerror错误。
错误代码:
- 如果发生domainerror错误,那么全局变量errno将被设置为 EDOM;
- 如果发生poleerror或rangeerror错误,那么全局变量errno将被设置为ERANGE。
注意,使用GCC编译时请加入-lm。
【实例】请看下面的代码。
#include<stdio.h> #include<math.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语言sqrt()函数:求给定值的平方根
头文件:
#include<math.h>
sqrt()用来求给定值的平方根,其原型为:
doublesqrt(doublex);
【参数】x为要计算平方根的值。
如果x<0,将会导致domainerror错误,并把全局变量errno的值为设置为EDOM。
【返回值】返回x平方根。
注意,使用GCC编译时请加入-lm。
【实例计算200的平方根值。】
#include<math.h> main(){ doubleroot; root=sqrt(200); printf("answeris%f\n",root); }
输出结果:
answeris14.142136