1. 程式人生 > >C語言實現猜數字遊戲 全乾貨!

C語言實現猜數字遊戲 全乾貨!

知識點:隨機數的生成: srand((unsigned)time(NULL)):

srand函式是隨機數發生器的初始化函式。原型:void srand(unsigned seed);

用法:它初始化隨機種子,會提供一個種子,這個種子會對應一個隨機數,如果使用相同的種子後面的rand()函式會出現一樣的隨機數,如: srand(1); 直接使用1來初始化種子。不過為了防止隨機數每次重複,常常使用系統時間來初始化,即使用 time函式來獲得系統時間,它的返回值為從 00:00:00 GMT, January 1, 1970 到現在所持續的秒數,然後將time_t型資料轉化為(unsigned)型再傳給srand函式,即: srand((unsigned) time(&t)); 還有一個經常用法,不需要定義time_t型t變數,即: srand((unsigned) time(NULL)); 直接傳入一個空指標,因為你的程式中往往並不需要經過引數獲得的資料。

如果想在一個程式中生成隨機數序列,需要至多在生成隨機數之前設定一次隨機種子。 即:只需在主程式開始處呼叫srand((unsigned)time(NULL)); 後面直接用rand就可以了。不要在for等迴圈放置srand((unsigned)time(NULL));
#include<stdio.h>
#include<time.h>
#include<stdlib.h>

void game(int s)
{
	int input = 0;                                 //設定遊戲猜測值
	while (1)
	{
printf("please input a number:> \n"); scanf_s("%d", &input); if (s>input) //通過猜測值與系統隨機值比較,對猜測者提供反饋 printf("猜小了 !\n"); if (s<input) printf("猜大了 !\n"); if (input == s) { printf("猜對了!!!\n"); break; //猜測正確時跳出迴圈
} } } void meun() { printf("*************************************************\n"); printf("**************** 1.play 0.exit ***************\n"); printf("********************** **********************\n"); } int main() { srand((unsigned)time(NULL)); //初始隨機數生成器 int s = rand() % 101; //生成隨機數(%101生成100以內隨機數) int input=0; //設定一個變數來選擇遊戲選單 do { meun(); //顯示遊戲選單 scanf_s("%d", &input); if (input == 1) //當變數a為1時,執行game函式 game(s); else break; } while (1); return 0; }