猜數字遊戲
整體流程:1.電腦會生成一個隨機數2.猜數字
rand()需要調用#include <stdlib.h>頭文件
使用time()函數需要引用頭文件#include <time.h>
用時間戳生成隨機數——猜數字遊戲
用rand()函數生成隨機數:
在調用rand()函數生成隨機數之前,需要使用srand()函數來為rand()函數設置隨機數的起點,用時間戳作為srand函數的參數來設置隨機數的生成起始點
時間戳:
當前計算機的時間減去計算機的起始時間(1970年1月1日0時0分0秒)=(xxxxx)秒,即為時間戳;
time()函數返回時間戳(time()函數的參數類型為time_t*的指針)
time()函數返回的值是time_t類型,time_t的本質是long長整型


srand()函數的參數需為unsigned int即無符號整型, 而time_t的本質是long長整型,就可以用(unsigned int)強制轉換為無符號整型
注:隨機數起點不要頻繁設置,頻繁設置隨機效果不好,所以要放在循環外面
void menu()
{
printf("****************************n");
printf("***** 1.play 0.exit *****n");
printf("****************************n");
}
void game()
{
//遊戲本體
int ret = 0;
int guess = 0;//接收猜的數字
//1.生成一個隨機數,
ret = rand() % 100 + 1;//把隨機數限定到1-100之間
//rand()生成隨機數函數,需要sranf()函數設置隨機起點
//2.猜數字
while (1)
{
printf("請猜數字:");
scanf("%d", &guess);
if (guess > ret)
{
printf("猜大了n");
}
else if (guess < ret)
{
printf("猜小了n");
}
else
{
printf("恭喜你,猜對了!n");
break;
}
}
}
int main() //時間戳:當前計算機的時間減去計算機的起始時間(1970年1月1日0時0分0秒)=(xxxxx)秒即為時間戳
{
int input = 0;
// 強制轉換為無符號整型
// ↓
srand((unsigned int)time(NULL));//在調用rand()函數生成隨機數之前,需要使用srand()函數來為rand()函數設置隨機數的起點,用時間戳作為srand函數的參數來設置隨機數的生成起始點;注:隨機數起點不要頻繁設置,頻繁設置隨機效果不好,所以要放在循環外面
// ↑ ↑
// ↑ time()函數返回時間戳 ————> time(time_t*timer)函數 ; time()函數返回的值是time_t類型。
// srand()函數的參數需為unsigned int即無符號整型 ↑ ↑
do // time()函數的參數類型為time_t*的指針 time_t的本質是long長整型
{
menu();
printf("請選擇:");
scanf("%d", &input);
switch (input)
{
case 1:
game();//進入到遊戲
break;
case 0:
printf("退出遊戲n");
break;
default:
printf("選擇錯誤n");
break;
}
}
while (input);
return 0;
}
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/226692.html