數學函數
C++ 內置了豐富的數學函數,可對各類數字進行運算。下表列出了 C++ 中一些有用的內置的數學函數。
爲了利用這些函數,您須要引用數學頭文件 。markdown
函數 | 描述 |
---|---|
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)用來控制輸出間隔。
例如:post
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個位置。
atom
所謂域寬,就是輸出的內容(數值或字符等等)須要佔據多少個字符的位置,若是位置有空餘則會自動補足。好比咱們要設置域寬爲2,那麼當輸出一位數1的時候輸出的就是「 1」,即在1前面加了一個空格。空格和數字1正好一共佔用了兩個字符的位置。若是你C++學的很差,能夠去拿個人C++最新精講教程點我進裙自行獲取,spa
咱們在設置域寬和填充字符的時候要注意幾點:
①設置域寬的時候應該填入整數,設置填充字符的時候應該填入字符。
②咱們能夠對一個要輸出的內容同時設置域寬和填充字符,可是設置好的屬性僅對下一個輸出的內容有效,以後的輸出要再次設置。即cout <<setw(2) <<a <<b;語句中域寬設置僅對a有效,對b無效。
③setw和setfill被稱爲輸出控制符,使用時須要在程序開頭寫上#include 「iomanip.h」,不然沒法使用。code
實例
#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