1)C语言math中提供的常见函数:
#include <iostream>
#include <cmath>
using namespace std;
//以下参数和返回值类型以double类型为准;
int main()
{
//cmath提供
//向上取整ceil(parameter x);所谓上下可以理解成数轴右边为上左边为下
cout << ceil(9.3) << endl;
//向下取整floor(parameter x);
cout << floor(9.9) << endl;
//取余数fmod(parameter x, parameter y);得到x/y的余数,可与x%y等效
cout << fmod(32.6, 2.7) << endl;
//四舍五入round(parameter x);
cout << round(6.8) << endl;
cout << round(6.4) << endl;
//取绝对值 abs(parameter x);取int类型绝对值 fabs();取double类型绝对值 fabsf();取float绝对值
cout << abs(-5) << endl;
cout << fabs(32.697843549) << endl;
cout << fabsf(32.6782) << endl;
//最值
//fmax(parameter x, parameter y);返回大值
cout << fmax(8.0, 3.7) << endl;
//fmin(parameter x, parameter y);返回小值
cout << fmin(8.0, 3.7) << endl;
//常见数学函数
//余弦cos(parameter x);注意里面传入的是弧度值不是角度值180°等于Πrad
cout << cos(M_PI * 30.0 / 180.0) << endl;//将30°转成弧度,M_PI是cmath头文件给的Π值
//正弦sin(parameter x);
cout << sin(M_PI * 45.0 / 180.0) << endl;
//正切tan(parameter x);
cout << tan(M_PI * 60.0 / 180.0) << endl;
//对应三个反三角函数
//反余弦acos(parameter x);
cout << acos(0.5) * 180.0 / M_PI << endl;
//反正弦asin(parameter x);
cout << asin(0.5) * 180.0 / M_PI << endl;
//反正切atan(parameter x);
cout << atan(1.0) * 180.0 / M_PI << endl;
//atan2(parameter x, parameter y);返回正切值为两个数的商的角度,x点的x坐标,y点的y坐标
//其中(x, y)为笛卡尔平面中的点
cout << atan2(1.0, 2.0) * 180.0 / M_PI << endl;
//算术平方根sqrt(parameter x);
cout << sqrt(4.0) << endl;
//立方根cbrt(parameter x);
cout << cbrt(8.0) << endl;
//幂函数pow(parameter x, parameter y);求x^y
cout << pow(7.0, 8.0) << endl;
//指数函数
//exp(parameter x);以e为底数指数函数
cout << exp(8.0) << endl;
//exp2(parameter x);以2为底数指数函数
cout << exp2(8.0) << endl;
//对数函数
//log10(parameter x);以10为底数的对数函数
cout << log10(100.0) << endl;
//log(parameter x);以e为底数的对数函数
cout << log(6.0) << endl;
//log2(parameter x);以2为底数对数函数
cout << log2(8.0) << endl;
//分解函数
//modf(parameter x, parameter* integer);返回值x的小数部分,并将interger设置为整数部分
double x = 3.141593, fractpart, intpart;
fractpart = modf(x, &intpart);
cout << intpart << ' ' << fractpart << endl;
//frexp(parameter x, parameter* n);把一个浮点数分解为尾数和指数
//说明:其中x = 尾数 * 2^指数
double x = 18.5, y;
int n;
y = frexp(x, &n);
cout << y << ' ' << n << endl;//x = y * 2^n;
//求直角三角形斜边(勾股定理)
//hypot(parameter x, parameter y);
cout << hypot(3, 4) << endl;
//双曲函数
//双曲余弦cosh(parameter x);
cout << cosh(0.5) << endl;
//双曲正弦sinh(parameter x);
cout << sinh(0.5) << endl;
//双曲正切cosh(parameter x);
cout << tanh(0.5) << endl;
return 0;
}
其外cmath中还有一些函数这里就不说了(例如:erf(parameter x); erfc(parameter x);tgamma(parameter x);等等这里就不说了,需要了解自行查看语言文档。
2)其他一些常用函数
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int a[1010], n, b[10][10];
int main()
{
//cstring里
memset(a, -1, sizeof(a));//初始化a数组将数组所有元素值初始化为-1
//memset函数原则上只能是初始化成0或者-1
//第一个参数为开始位置,第二个参数为值,第三个参数整个数组内存空间
cin >> n;//这里只输出n个,不然太多了
for(int i = 0; i < n; ++i) cout << a[i] << ' ';
cout << endl;
//algorithm
//如果要初始化成别的值可使用algorithm里面fill填充函数
fill(a, a + n, 10);//初始位置,向后几个,填充值
for(int i = 0; i < n; ++i) cout << a[i] << ' ';
cout << endl;
a[0] = 8; a[n - 1] = 7;
//交换两个元素
swap(a[0], a[n - 1]);//这里将a[0]与a[n - 1]交换
for(int i = 0; i < n; ++i) cout << a[i] << ' ';
cout << endl;
//初始化二维数组
fill(b[0], b[0] + 10 * 10, 3);//注意二维数组首地址为b[0]
for(int i = 0; i < 10; ++i)
{
for(int j = 0; j < 10; ++j)
cout << b[i][j] << ' ';
cout << endl;
}
return 0;
}