隨機生成一個0-100的數字,讓人去猜,如果沒猜對,會自動提示猜大了還是猜小了,
重點:這里的重點是如何生成0-100的亂數,這里呼叫了一個庫函式,
1,rand()函式
rand()函式生成一個亂數前,要有準備作業,要先呼叫srand()函式


![]()
2,其中srand()函式要傳入一個不斷變化的值,rand()函式才可以生成一個完全隨機的數,
這當然是不行的,于是第三步,
3,time()函式,他的回傳值是一個和計算機螢屏時間 有一個固定轉換的值,而計算機時間是不斷的一秒一秒變化的,所以time()函式的回傳值也就不斷變化了,srand()函式要的那個不斷變化的值也就有了, srand((unsigned int)time(NULL)),其中(unsigned int)是time()函式的回傳型別強轉,使之與srand要傳的參型別相同,給time()傳了NULL一個空指標是因為
time()函式要求傳指標的,
4,最后呼叫前面都準備好之后,呼叫5rand()函式就可以生成一個亂數了
5,rand()%100+1就是0-100的亂數了,

需要注意的是,rand()函式要生成一個完全隨機的數還要先呼叫srand()函式
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
// 猜數字游戲
//*********************
void menue()
{
printf("***************************\n");
printf("****** 1.play **********\n");
printf("****** 0.exit **********\n");
printf("***************************\n");
}
void game()
{
int ret = 0;
int r= rand(NULL)%100+1;
while (1)
{
scanf("%d",&ret);
if (ret > r)
{
printf("猜大了\n");
}
else if (ret < r)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜隊了\n");
break;
}
}
}
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do
{
menue();
printf("請選擇>>>");
scanf("%d",&input);
switch (input)
{
case 1:
printf("開始游戲.猜一個0-100的數字\n");
game();
break;
case 0:
printf("退出游戲\n");
break;
default :
printf("輸入錯誤,請重新輸入\n");
break;
}
} while (input);
return 0;
}
以下就是我玩一局游戲的程序

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342309.html
標籤:其他
上一篇:unity及c#學記筆記
下一篇:玩兒轉C語言——猜數字游戲詳解
