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,或者x<0且y不是整型数,将产生定义域错误
double sqrt (double x) x的平方根,其中x>=0
double log (double x) 以e为底的对数,自然对数,x>0
double log10 (double x) 以10为底的对数,x>0
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,则结果与具体的额实现有关
#include<stdio.h>#include <math.h>
//先定义一个阶乘函数
double fac(double n){
double f=0
if(n == 1 || n==0)
f =1
else
f = fac(n-1)*n
return f
}
//一个指数函数(次方)
double kvat(double n,double ci){
double chengf=1
for (int i=1i<=cii++) {
chengf = chengf*n
}
return chengf
}
double sinus(double x){
int z =-1
int j =1
double sin=x
for (j =3fabs( kvat(x,j)/fac(j) )>0.001 j+=2) {
//printf("%lf\n",kvat(x, j))
sin =sin + z*(kvat(x,j)/fac(j))
z = -z
}
return sin
}
int main(){
double jd,hudu
scanf("%lf",&jd)
hudu = (jd*M_PI)/180//这里的M_PI在math库里就是 圆周率pai
printf( "%.3lf",sinus(hudu))
return 0
}
包含头文件math.h,写成sin(x)的形式直接调用这个函数。其中x是double型弧度值。函数返回一个double值。如有doublex=3.1415926/180*30,那么printf("sin30°
=
%f\n",sin(x))将输出sin30°
=
0.500000。
修改建议
您的回答内容不完整
知识型提问需要先直接对提问进行回复,开门见山,再对相关知识点进行延伸,如:http://t.cn/RL6ROi3加油哦!
你拒绝认证吧,这没有完善的必要了,学过三角函数的人都能看懂,看了10页C教科书的也都知道怎么写了。还要怎样“开门见山”,怎样“延伸”?难道还得解释sin是对边比斜边?