gcc編譯器下的隨機函數
❶ linux下 gcc 編譯器 不識別 C語言 pow()函數
要包含頭文件:#include <math.h>
pow() 函數用來求 x 的 y 次冪(次方),其原型為:
double pow(double x, double y);
pow()用來計算以x 為底的 y 次方值,然後將結果返回。設返回值為 ret,則ret = xy。
可能導致錯誤的情況:
如果底數 x 為負數並且指數 y 不是整數,將會導致 domain error錯誤。
如果底數 x 和指數 y 都是 0,可能會導致 domain error錯誤,也可能沒有;這跟庫的實現有關。
如果底數 x 是 0,指數 y 是負數,可能會導致domain error 或pole error 錯誤,也可能沒有;這跟庫的實現有關。
如果返回值 ret 太大或者太小,將會導致range error 錯誤。

❷ C語言生成隨機數的函數,為什麼循環後隨機數都一樣
srand()函數是初始化隨機數產生器,它產生隨機數種子,說白了就是初始化隨機數。
srand((unsigned)time(0));取的是系統時間,也就是距離1970.1.1午夜有多少秒。而for循環每循環一次時間遠遠小於1秒,這就導致了srand((unsigned)time(0))產生的種子並沒有改變。 那麼,相同的隨機數種子所產生的隨機數肯定是一樣的了。

(2)gcc編譯器下的隨機函數擴展閱讀:
C語言產生隨機數的方法:
1,在C語言中,rand()函數可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,可以稱它為種子,為基準以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數。
2,C語言中的隨機函數random,可是random函數並不是ANSI C標准,所以說,random函數不能在gcc,vc等編譯器下編譯通過。
3,rand()會返回一隨機數值,范圍在0至RAND_MAX 間。返回0至RAND_MAX之間的隨機數值,RAND_MAX定義在stdlib.h,(其值至少為32767)我運算的結果是一個不定的數,要看你定義的變數類型,int整形的話就是32767。
4,在調用此函數產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在調用時會自動設隨機數種子為1。一般用for語句來設置種子的個數。
❸ Linux下在terminal運行c++程序的問題。用gcc編譯器
多源文件的編譯方法
如果有多個源文件,基本上有兩種編譯方法:
[假設有兩個源文件為test.c和testfun.c]
1. 多個文件一起編譯
用法:#gcc testfun.c test.c -o test
作用:將testfun.c和test.c分別編譯後鏈接成test可執行文件。
2. 分別編譯各個源文件,之後對編譯後輸出的目標文件鏈接。
用法:
#gcc -c testfun.c //將testfun.c編譯成testfun.o
#gcc -c test.c //將test.c編譯成test.o
#gcc -o testfun.o test.o -o test //將testfun.o和test.o鏈接成test
以上兩種方法相比較,第一中方法編譯時需要所有文件重新編譯,而第二種方法可以只重新編譯修改的文件,未修改的文件不用重新編譯。
❹ gcc編譯文件時找不到指定函數怎麼辦
通常找不到指定函數不是因為編譯參數問題。而是你 g.cpp 中在include f.h的時候沒有使用: extern "C" { #include"f.h" } 因為C語言和cpp的編譯過程中的函數名稱修飾規則是不一樣的。當cpp引用C庫的時候必須告訴編譯器,哪些函數是C函數
❺ random 和 rand 演算法一樣嗎
不一樣,看下面具體比較!
Random(int n)函數與rand()函數的比較
1、 Random(int n):randomize,random 不是ANSI C標准,random函數不能在GCC,VC等編譯器下編譯通過
2、 Rand()函數則可以通過GCC,VC等編譯器
3、 無論 Random(int n)函數或rand()函數要想隨機產生數,都要設置一個種子,否則產生的隨機數均是相同的。
4、 設置種子可以用:srand(int)函數來,同時要結合時間函數,使得每次種子不相同,即可產生不同的隨機數,因此要引入頭文件:#include<time.h>
下面舉個例子:在編寫俄羅斯方塊代碼中,要選擇不同的圖形,實現的代碼如下: #include<stdio.h> #include<stdlib.h> #include<time.h> main()
{ int aa1[4][4]={{0,1,0,0},{0,1,0,0},{0,1,0,0},{0,1,0,0}}; int aa2[4][4]={{0,0,0,0},{0,0,1,1},{0,1,1,0},{0,0,0,0}}; int aa3[4][4]={{0,0,0,0},{0,1,1,0},{1,1,0,0},{0,0,0,0}}; int aa4[4][4]={{0,1,0,0},{0,1,0,0},{0,1,0,0},{1,1,0,0}}; int aa5[4][4]={{0,1,0,0},{0,1,0,0},{0,1,0,0},{0,1,1,0}}; int aa6[4][4]={{0,0,0,0},{0,1,1,0},{0,1,1,0},{0,0,0,0}}; int aa[6]={0,1,2,3,4,5}; int a,i,j;
srand((unsigned)time(0)); a=rand()%5;
❻ C語言產生1~6的一個隨機數!!急!
代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int x,num;
srand(time( NULL ));
x =1 + (rand()%6);
printf("%d",x);
return 0;
}
源代碼截圖:

