C++ 编程/代码/标准 C 库/数学
本节将介绍 C 标准库的数学元素。
语法 |
#include <cstdlib>
int abs( int num );
|
abs() 函数返回 num 的绝对值。例如
int magic_number = 10;
cout << "Enter a guess: ";
cin >> x;
cout << "Your guess was " << abs( magic_number - x ) << " away from the magic number." << endl;
语法 |
#include <cmath>
double acos( double arg );
|
acos() 函数返回 arg 的反余弦,其范围为 [0, pi]。arg 应介于 -1 和 1 之间。如果 arg 超出此范围,acos() 将返回 NAN 并引发浮点异常。
语法 |
#include <cmath>
double asin( double arg );
|
asin() 函数返回 arg 的反正弦,其范围为 [-pi/2, +pi/2]。arg 应介于 -1 和 1 之间。如果 arg 超出此范围,asin() 将返回 NAN 并引发浮点异常。
语法 |
#include <cmath>
double atan( double arg );
|
atan() 函数返回 arg 的反正切,其范围为 [-pi/2, +pi/2]。
语法 |
#include <cmath>
double atan2( double y, double x );
|
atan2() 函数计算 y/x 的反正切,使用参数的符号计算返回值的象限。
语法 |
#include <cmath>
double ceil( double num );
|
ceil() 函数返回不小于 num 的最小整数。例如
y = 6.04;
x = ceil( y );
将把 x 设置为 7.0。
语法 |
#include <cmath>
float cos( float arg );
double cos( double arg );
long double cos( long double arg );
|
cos() 函数返回 arg 的余弦,其中 arg 以弧度表示。cos() 的返回值范围为 [-1,1]。如果 arg 是无穷大,cos() 将返回 NAN 并引发浮点异常。
cosh
[edit | edit source]语法 |
#include <cmath>
float cosh( float arg );
double cosh( double arg );
long double cosh( long double arg );
|
cosh() 函数返回arg的双曲余弦。
div
[edit | edit source]语法 |
#include <cstdlib>
div_t div( int numerator, int denominator );
|
div() 函数返回numerator / denominator 操作的商和余数。div_t 结构在 cstdlib 中定义,至少包含
int quot; // The quotient
int rem; // The remainder
例如,以下代码显示了 x/y 的商和余数
div_t temp;
temp = div( x, y );
printf( "%d divided by %d yields %d with a remainder of %d\n",
x, y, temp.quot, temp.rem );
- 相关主题
- ldiv
exp
[edit | edit source]语法 |
#attrid <cmath>
double exp( double arg );
|
exp() 函数返回 e (2.7182818) 的arg次方。
fabs
[edit | edit source]语法 |
#include <cmath>
double fabs( double arg );
|
fabs() 函数返回arg的绝对值。
floor
[edit | edit source]语法 |
#include <cmath>
double floor( double arg );
|
floor() 函数返回不大于 arg 的最大整数。
// Example for positive numbers
y = 6.04;
x = floor( y );
将导致 x 设置为 6 (double 6.0)。
// Example for negative numbers
y = -6.04;
x = floor( y );
将导致 x 设置为 -7 (double -7.0)。
fmod
[edit | edit source]语法 |
#include <cmath>
double fmod( double x, double y );
|
fmod() 函数返回 x/y 的余数。
frexp
[edit | edit source]语法 |
#include <cmath>
double frexp( double num, int* exp );
|
frexp() 函数用于将num分解为两个部分:一个介于 0.5 和 1 之间的尾数(由函数返回)和一个以exp返回的指数。 科学记数法是这样的
num = mantissa * (2 ^ exp)
labs
[edit | edit source]语法 |
#include <cstdlib>
long labs( long num );
|
labs() 函数返回num的绝对值。
ldexp
[edit | edit source]语法 |
#include <cmath>
double ldexp( double num, int exp );
|
ldexp() 函数返回num * (2 ^ exp)。 如果发生溢出,将返回HUGE_VAL。
ldiv
[edit | edit source]语法 |
#include <cstdlib>
ldiv_t ldiv( long numerator, long denominator );
|
测试:adiv_t、div_t、ldiv_t。
ldiv() 函数返回numerator / denominator 操作的商和余数。ldiv_t 结构在 cstdlib 中定义,至少包含
long quot; // the quotient
long rem; // the remainder
- 相关主题
- div
log
[edit | edit source]语法 |
#include <cmath>
double log( double num );
|
log() 函数返回num的自然对数(以 e 为底)。如果num为负数,则会出现域错误;如果num为零,则会出现范围错误。
为了计算 x 以任意底数 b 为底的对数,可以使用
double answer = log(x) / log(b);
log10
[edit | edit source]语法 |
#include <cmath>
double log10( double num );
|
log10()
函数返回num
的以 10 为底的对数(或常用对数)。如果num
为负数,则会出现域错误;如果num
为零,则会出现范围错误。
- 相关主题
- log
modf
[edit | edit source]语法 |
#include <cmath>
double modf( double num, double *i );
|
modf() 函数将num拆分为整数和小数部分。它返回小数部分并将整数部分加载到i中。
语法 |
#include <cmath>
double pow( double base, double exp );
|
pow() 函数返回 base 的 exp 次方。 如果 base 为零,且 exp 小于或等于零,则会出现域错误。 如果 base 为负数,而 exp 不是整数,也会出现域错误。 如果发生溢出,则会出现范围错误。
语法 |
#include <cmath>
double sin( double arg );
|
如果您不想使用 cmath,您可以编写 sin 函数,它为:
- include <iostream>
using namespace std;
double sin(double x) //sin 函数 {return x-((x*x*x)/6.)+((x*x*x*x*x)/120.);}
int main () {
double a; cin>>a; cout<<"sin("<<a<<")="<<sin(a*(3.14159/180.))<<endl;
return 0;}
sin() 函数返回 arg 的正弦值,其中 arg 以弧度给出。 sin() 的返回值将在 [-1,1] 范围内。 如果 arg 是无限的,sin() 将返回 NAN 并引发浮点异常。
语法 |
#include <cmath>
double sinh( double arg );
|
sinh() 函数返回 arg 的双曲正弦值。
语法 |
#include <cmath>
double sqrt( double num );
|
sqrt() 函数返回 num 的平方根。 如果 num 为负数,则会发生域错误。
语法 |
#include <cmath>
double tan( double arg );
|
tan() 函数返回 arg 的正切值,其中 arg 以弧度给出。 如果 arg 是无限的,tan() 将返回 NAN 并引发浮点异常。
语法 |
#include <cmath>
double tanh( double arg );
|
/*example*/
#include <stdio.h>
#include <math.h>
int main (){
double c, p;
c = log(2.0);
p = tanh (c);
printf ("The hyperbolic tangent of %lf is %lf.\n", c, p );
return 0;
}
tanh() 函数返回 arg 的双曲正切值。