C語言實現猜數字遊戲 全乾貨!
阿新 • • 發佈:2018-12-31
知識點:隨機數的生成: 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;
}