這些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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM