这些C++常用内置函数你会几个??
前言
数学函数
c++ 内置了丰富的数学函数,可对各种数字进行运算。下表列出了 c++ 中一些有用的内置的数学函数。
为了利用这些函数,您需要引用数学头文件 。
函数 | 描述 |
---|---|
double cos(double); | 该函数返回弧度角(double 型)(度数)的余弦。 |
double sin(double); | 该函数返回弧度角(double 型)(度数)的正弦。 |
double tan(double); | 该函数返回弧度角(double 型)(度数)的正切。 |
double log(double); | 该函数返回参数的自然对数。 |
double pow(double, double); | 假设第一个参数为 x,第二个参数为 y,则该函数返回 x 的 y 次方。 |
double hypot(double, double); | 该函数返回两个参数的平方总和的平方根,也就是说,参数为一个直角三角形的两个直角边,函数会返回斜边的长度。 |
double sqrt(double); | 该函数返回参数的平方根。 |
int abs(int); | 该函数返回整数的绝对值。 |
double fabs(double); | 该函数返回任意一个十进制数的绝对值。 |
double floor(double); | 该函数返回一个小于或等于传入参数的最大整数。 |
随机函数
在许多情况下,需要生成随机数。关于随机数生成器,有两个相关的函数。一个是 rand(),该函数只返回一个伪随机数。生成随机数之前必须先调用 srand() 函数。
下面是一个关于生成随机数的简单实例。实例中使用了 time() 函数来获取系统时间的秒数,通过调用 rand() 函数来生成随机数:
#include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main () { int i,j; // 设置种子 srand( (unsigned)time( null ) ); /* 生成 10 个随机数 */ for( i = 0; i < 10; i++ ) { // 生成实际的随机数 j= rand(); cout <<"随机数: " << j << endl; } return 0; }
当上面的代码被编译和执行时,它会产生下列结果:
随机数: 1748144778 随机数: 630873888 随机数: 2134540646 随机数: 219404170 随机数: 902129458 随机数: 920445370 随机数: 1319072661 随机数: 257938873 随机数: 1256201101 随机数: 58032298
setw()函数
在c++中,setw(int n)用来控制输出间隔。
例如:
cout<<'s'<<setw(8)<<'a'<<endl;
则在屏幕显示
s a
//s与a之间有7个空格,setw()只对其后面紧跟的输出产生作用,如上例中,表示’a’共占8个位置,不足的用空格填充。若输入的内容超过setw()设置的长度,则按实际长度输出。
setw()默认填充的内容为空格,可以用setfill()配合使用设置其他字符填充。
如cout<<setfill('*')<<setw(5)<<'a'<<endl;
则输出:****a //4个*和字符a共占5个位置。
所谓域宽,就是输出的内容(数值或字符等等)需要占据多少个字符的位置,如果位置有空余则会自动补足。比如我们要设置域宽为2,那么当输出一位数1的时候输出的就是“ 1”,即在1前面加了一个空格。空格和数字1正好一共占用了两个字符的位置。如果你c++学的不好,可以去拿我的c++最新精讲教程点我进裙自行获取,
我们在设置域宽和填充字符的时候要注意几点:
①设置域宽的时候应该填入整数,设置填充字符的时候应该填入字符。
②我们可以对一个要输出的内容同时设置域宽和填充字符,但是设置好的属性仅对下一个输出的内容有效,之后的输出要再次设置。即cout <<setw(2) <<a <<b;语句中域宽设置仅对a有效,对b无效。
③setw和setfill被称为输出控制符,使用时需要在程序开头写上#include “iomanip.h”,否则无法使用。
实例
#include <iostream> using namespace std; #include <iomanip> using std::setw; int main () { int n[ 10 ]; // n 是一个包含 10 个整数的数组 // 初始化数组元素 for ( int i = 0; i < 10; i++ ) { n[ i ] = i + 100; // 设置元素 i 为 i + 100 } cout << "element" << setw( 13 ) << "value" << endl; // 输出数组中每个元素的值 for ( int j = 0; j < 10; j++ ) { cout << setw( 7 )<< j << setw( 13 ) << n[ j ] << endl; } return 0; }
上面的程序使用了 setw() 函数来格式化输出。当上面的代码被编译和执行时,它会产生下列结果:
element value 0 100 1 101 2 102 3 103 4 104 5 105 6 106 7 107 8 108 9 109