十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
方法一:使用C语言提供的函数库,原型定义在math.h中;
我们提供的服务有:成都网站制作、做网站、微信公众号开发、网站优化、网站认证、河池ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的河池网站制作公司
方法二:使用泰勒级数展开。
一些数学计算的公式的具体实现是放在math.h里,具体有:
double sin (double x); x的正弦值
double cos (double x); x的余弦值
double tan (double x); x的正切值
double asin (double x); 结果介于[-PI/2, PI/2],x值域为[-1,1]
double acos (double x); 结果介于[0, PI],x值域为[-1,1]
double atan (double x); 反正切(主值), 结果介于[-PI/2, PI/2]
double atan2 (double y, double x); 反正切(整圆值), 结果介于[-PI, PI]
double sinh (double x); x的双曲正弦值
double cosh (double x); x的双曲余弦值
double tanh (double x); x的双曲正切值
double exp (double x); 幂函数e^x
double pow (double x, double y); x^y,如果x=0且y=0,或者x0且y不是整型数,将产生定义域错误
double sqrt (double x); x的平方根,其中x=0
double log (double x); 以e为底的对数,自然对数,x0
double log10 (double x); 以10为底的对数,x0
double ceil (double x); 取上整
double floor (double x); 取下整
double fabs (double x); x的绝对值
double frexp (double x, int *exp); 标准化浮点数, x = f * 2^exp, 已知x求f, exp ( x介于[0.5, 1] )并返回f值
double ldexp (double x, int exp); 与frexp相反, 已知x, exp求x*2^exp
double modf (double x, double *ip); 将参数的整数部分通过指针回传, 返回小数部分,整数部分保存在*ip中
double fmod (double x, double y); 返回两参数相除x/y的余数,符号与x相同。如果y为0,则结果与具体的额实现有关
在C语言中,Pow函数这的是求一个数的多少此方,做个简单的例子吧
#include math.h
#include stdio.h
void main( void )
{
double x = 2.0, y = 3.0, z;
z = pow( x, y );
printf( "%.1f to the power of %.1f is %.1f\n", x, y, z );
}
LZ这样可以了吗??
#includestdio.h
#includemath.h
double sin(double);
double nResult(double,double);
int main()
{
double x=0;
scanf("%lf",x);
printf("sin(%lf)=%lf\n",x,sin(x));
return 0;
}
double sin(double x)
{
//sin(x)=x-x^3/3!+x^5/5!-x^7/7!+……+(-1)(n^2n+1)/(2n+1)!+……
int i=0;
double result=0,n=0;
while( fabs( n=nResult(x,2*++i-1) ) 0e-5 )//绝对值大于10^-5次方就循环
result+=(i%2==1)?n:-n;
return result;
}
double nResult(double x,double n)
{
//(n^2n+1)/(2n+1)!也就是n/1*n/2*n/3*n/4*.....n/(2n+1)
return n==1?x:nResult(x,n-1)*x/n;
}