您的位置:首页 > 编程语言 > C语言/C++

C语言常用数学函数

2016-01-07 12:03 435 查看
#include<windows.h>//源代码已经在DEV-C++编译通过
#include<math.h>
#include<iostream>
using namespace std;
const double pi = 2 * asin(1.0);
int main()
{
//测试一下pi
cout << "pi = " << pi << endl;
cout << "pi / 2.0 = " << pi / 2.0 << endl;
cout << "pi / 4.0 = " << pi / 4.0 << endl;
cout << "//////////////////////////" << endl;

//1 三角函数
//double sin (double);
//double cos (double);
//double tan (double);
cout << "sin(pi / 2.0) = " << sin(pi / 2.0) << endl;
cout << "cos(pi / 2.0) = " << cos(pi / 2.0) << endl;//6.12303e-017 表示0
cout << "tan(pi / 2.0) = " << tan(pi / 2.0) << endl;//1.63318e+016 表示无穷大
cout << "//////////////////////////" << endl;

//2 反三角函数
//double asin (double);结果介于[-PI/2, PI/2]
//double acos (double);结果介于[0, PI]
//double atan (double);反正切(主值), 结果介于[-PI/2, PI/2]
//double atan2 (double, double);反正切(整圆值), 结果介于[-PI/2, PI/2]
//atan2(y,x)所表达的意思是坐标原点为起点,
//指向(x,y)的射线在坐标平面上与x轴正方向之间的角的角度
cout << "asin(1.0) = " << asin(1) << endl;
cout << "acos(1.0) = " << acos(1) << endl;
cout << "atan(1.0) = " << atan(1) << endl;
cout << "atan2(1.0,1.0) = " << atan2(1.0,1.0) << endl;
cout << "//////////////////////////" << endl;

//3 双曲三角函数
//double sinh (double);双曲正弦sinhx = (e^(x) - e^(-x)) / 2
//double cosh (double);双曲余弦coshx = (e^(x) + e^(-x)) / 2
//double tanh (double);双曲正切tanhx = (e^(x) - e^(-x)) / (e^(x) + e^(-x))
cout << "sinh(1.0) = " << sinh(1.0) << endl;
cout << "cosh(1.0) = " << cosh(1.0) << endl;
cout << "tanh(1.0) = " << tanh(1.0) << endl;
cout << "//////////////////////////" << endl;

//4 指数与对数
//double exp (double);
//double pow (double x, double y); 计算x的y次方
//double log (double); 以e为底的对数
//double log10 (double); 以10为底的对数
cout << "exp(1.0) = " << exp(1.0) << endl;
cout << "pow(2.0,10.0) = " << pow(2.0,10.0) << endl;
cout << "log(1.0) = " << log(1.0) << endl;
cout << "log10(1.0) = " << log10(1.0) << endl;
cout << "//////////////////////////" << endl;

//5 取整
//double ceil (double); 取上整
//double floor (double);取下整
cout << "ceil(1.66) = " << ceil(1.66) << endl;
cout << "floor(1.66) = " << floor(1.66) << endl;
cout << "//////////////////////////" << endl;

//6 绝对值
//int abs(int);//求整数的绝对值
//double fabs (double);//求实数的绝对值
cout << "abs(-1) = " << abs(-1) << endl;
cout << "fabs(-1.0) = " << fabs(-1.0) << endl;
cout << "//////////////////////////" << endl;

//7 标准化浮点数
//double frexp (double f, int *p);标准化浮点数, f = x*2^p,已知f求x, p(x介于[0.5,1]),
//将p通过指针回传,返回x
//double ldexp (double x, int p);与frexp相反, 已知x, p求f
int *p = new int;
cout << "x = frexp(12345.6789,p) = " << frexp(12345.6789,p) << endl;
cout << "p = " << *p << endl;
delete p;
p = NULL;
cout << "ldexp(1.23456789,12) = " << ldexp(1.23456789,12) << endl;
cout << "//////////////////////////" << endl;

//8 取整与取余
//double modf (double, double*);将参数的整数部分通过指针回传, 返回小数部分
//double fmod (double x, double y);返回x除以y的余数
double *q = new double;
cout << "小数部分 = modf(88.88,p) = " << modf(88.88,q) << endl;
cout <<"整数部分 = *q = " << *q << endl;
cout << "fmod(10.0,3.0) = " << fmod(10.0,3.0) << endl;
delete q;
q = NULL;
cout << "//////////////////////////" << endl;

//9 开平方
//double sqrt (double);
cout << "sqrt(9.0) = " << sqrt(9.0) << endl;
cout << "//////////////////////////" << endl;

system("pause");
return 0;
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息