編譯環境vs2017
猜數字遊戲,顧名思義,是需要人們猜測乙個未知但已確定的數,此問題中還規定了範圍0~99。其中,這個未知但要確定的數就要由編寫程式來產生,當這個數生成後我們猜數字,程式告訴我們猜的高了,低了,或猜對了來提示我們猜數。
這個未知但已確定的數我們可以用隨機數來代替,運用rand()函式可以產生產生隨機數,但產生的隨機數並不是真正意義上的隨機數,因為rand的內部實現是用線性同餘法做的,他並不是真的隨機數,只不過是因為其週期特別長,所以有一定的範圍裡可看成是隨機的。rand()會返回一隨機數值,範圍在0至rand_max 間。在呼叫此函式產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在呼叫時會自動設隨機數種子為1。rand ()產生的是假隨機數字,每次執行時是相同的。若要不同,以不同的值來初始化它.初始化的函式就是srand()。
srand()用來設定rand()產生隨機數時的隨機數種子。其引數必須是個整數,通常可以利用time(0)的返回值來當做引數。如果每次引數都設相同值,rand()所產生的隨機數值每次就會一樣。
例如:當不設定隨機數種子時每次產生隨機數都一樣,如下
int num[10]
;for
(int i =
0; i <10;
++i)
這段**每次執行產生的隨機數列都不變如下:當設定變化的隨機種子後
即新增**
srand((unsigned int)time(0));
int num[10]
;srand((
unsigned
int)
time(0
));for
(int i =
0; i <10;
++i)
即執行結果為:再次執行結果為
可以看出,設定變化的時間戳作為隨機種子後生成的隨機數組不再重複
需要注意的是time(0)返回值與srand()中引數型別並不同,srand()中引數型別為unsigned int型,為避免警告,需要進行型別強制轉換
具體實現如下:
#define _crt_secure_no_warnings
#include
#include
#include
void
menu()
void
fun(
)else
if(x < to_guess)
else}}
intmain()
if(num ==0)
system
("pause");
return0;
}
執行結果如下:再次執行後:
猜數字遊戲(C語言)
題目 輸入乙個隨機四位數,你猜這個四位數。你猜的結果與這個四位數進行比較,如果所在的位和 這個位上的數字都相同,用a表示。如果只是數字相同,而位置不同,則用b表示。你只有10次機會!如 隨機產生的數字為 4325 你猜的數 提示你 4586 1a0b 3524 0a4b.直到在10次內產生4a0b,...
猜數字遊戲 C語言)
猜數字遊戲是令遊戲機隨機產生乙個100以內的正整數,使用者輸入乙個數對其進行猜測,需要你編寫程式自動對其與隨機產生的被猜數進行比較,並提示大了 too big 還是小了 too small 相等表示猜到了。如果猜到,則結束程式。程式還要求統計猜的次數,如果1次猜出該數,提示 bingo 如果3次以內...
c語言猜數字遊戲
include include include include include 2 游標定位函式 由於在vc 6.0中沒有標頭檔案,所以需要編寫gotoxy 函式以實現游標定位功能。void gotoxy int x,int y 3 猜數字 本函式主要實現數字遊戲的功能,系統採用隨機函式隨機生成數字...