猜數字遊戲(C語言)

2021-09-13 13:56:26 字數 2003 閱讀 6303

編譯環境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 猜數字 本函式主要實現數字遊戲的功能,系統採用隨機函式隨機生成數字...