C語(yǔ)言實(shí)現(xiàn)猜數(shù)字小游戲的示例代碼
一、猜數(shù)字小游戲
使用循環(huán)語(yǔ)句、分支語(yǔ)句和函數(shù)實(shí)現(xiàn),游戲內(nèi)容為輸入0~100之間的數(shù)字,根據(jù)提示信息判斷自己猜的數(shù)字和隨機(jī)生成的數(shù)字哪個(gè)大哪個(gè)小,并根據(jù)提示信息輸入合適的數(shù)字以便更快的通過(guò)游戲。
1.演示效果

2.完整代碼
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void menu()//菜單
{
printf("************************\n");
printf("**歡迎來(lái)到猜數(shù)字小游戲**\n");
printf("**** 1.開(kāi)始游戲 *****\n");
printf("**** 2.結(jié)束游戲 *****\n");
printf("************************\n");
}
void game()
{
int ret = rand() % 100 + 1;//生成0~100之間的隨機(jī)數(shù)
int guess = 0;
int i = 0;
while (guess != ret)//當(dāng)猜的數(shù)字和rand隨機(jī)生成的數(shù)字相同時(shí),循環(huán)終止
{
printf("請(qǐng)輸入你要猜的數(shù)字(0~100):");
scanf("%d", &guess);
if (guess > ret)
{
printf("猜大了!\n");
}
else if (guess < ret) {
printf("猜小了!\n");
}
else
{
printf("恭喜你,猜對(duì)了!\n");
break;
}
}
}
int main()
{
srand((unsigned int)time(NULL));//生成不同的數(shù)用來(lái)初始化rand的初始值
int input = 0;
do {
menu();//菜單函數(shù)
printf("請(qǐng)選擇>:");
scanf("%d", &input);
switch (input)
{
case 1:
game();//調(diào)用game()函數(shù)
break;
case 2:
printf("游戲結(jié)束!");
break;
default:
printf("選擇錯(cuò)誤,請(qǐng)重新選擇!\n");
break;
}
} while (input != 2);
return 0;
}
二、代碼解析
1.游戲主體函數(shù)
void game()
{
int ret = rand() % 100 + 1;//生成0~100之間的隨機(jī)數(shù)
int guess = 0;
int i = 0;
while (guess != ret)//當(dāng)猜的數(shù)字和rand隨機(jī)生成的數(shù)字相同時(shí),循環(huán)終止
{
printf("請(qǐng)輸入你要猜的數(shù)字(0~100):");
scanf("%d", &guess);
if (guess > ret)
{
printf("猜大了!\n");
}
else if (guess < ret) {
printf("猜小了!\n");
}
else
{
printf("恭喜你,猜對(duì)了!\n");
break;
}
}
}
在C語(yǔ)言中,rand函數(shù)可以用來(lái)產(chǎn)生隨機(jī)數(shù),但并不是真正意義上的隨機(jī)數(shù),它是返回介于0~RAND_MAX之間的偽隨機(jī)整數(shù),但是在系統(tǒng)正常使用的情況下,產(chǎn)生的偽隨機(jī)整數(shù)是固定的。為了初始化的值不同,C語(yǔ)言提供了srand函數(shù)。
2.菜單函數(shù)
void menu()//菜單
{
printf("************************\n");
printf("**歡迎來(lái)到猜數(shù)字小游戲**\n");
printf("**** 1.開(kāi)始游戲 *****\n");
printf("**** 2.結(jié)束游戲 *****\n");
printf("************************\n");
}
3.頭文件以及主函數(shù)
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
srand((unsigned int)time(NULL));//生成不同的數(shù)用來(lái)初始化rand的初始值
int input = 0;
do {
menu();//菜單函數(shù)
printf("請(qǐng)選擇>:");
scanf("%d", &input);
switch (input)
{
case 1:
game();//調(diào)用game()函數(shù)
break;
case 2:
printf("游戲結(jié)束!");
break;
default:
printf("選擇錯(cuò)誤,請(qǐng)重新選擇!\n");
break;
}
} while (input != 2);
return 0;
}
srand((unsigned int)time(NULL))中調(diào)用srand函數(shù)需要頭文件<stdlib.h>,同時(shí)使用系統(tǒng)時(shí)間來(lái)初始化需要包含頭文件<time.h>,srand函數(shù)一般使用時(shí)間戳,采用系統(tǒng)時(shí)間來(lái)初始化,使用time函數(shù)來(lái)獲得系統(tǒng)時(shí)間,然后將time_t型數(shù)據(jù)轉(zhuǎn)化為(unsigned)型再傳給srand函數(shù)。這樣使用rand時(shí),每次產(chǎn)生的隨機(jī)數(shù)都不相同。
以上就是C語(yǔ)言實(shí)現(xiàn)猜數(shù)字小游戲的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于C語(yǔ)言猜數(shù)字游戲的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C語(yǔ)言volatile關(guān)鍵字的作用與示例
這篇文章主要介紹了C語(yǔ)言volatile關(guān)鍵字的作用,volatile提醒編譯器它后面所定義的變量隨時(shí)都有可能改變,因此編譯后的程序每次需要存儲(chǔ)或讀取這個(gè)變量的時(shí)候,都會(huì)直接從變量地址中讀取數(shù)據(jù)2023-04-04
C語(yǔ)言函數(shù)指針與回調(diào)函數(shù)的實(shí)現(xiàn)
本文主要介紹了C語(yǔ)言函數(shù)指針與回調(diào)函數(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
C語(yǔ)言小游戲之小熊跳板功能的實(shí)現(xiàn)
這篇文章主要介紹了C語(yǔ)言小游戲之小熊跳板功能的實(shí)現(xiàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
C++中類(lèi)型推斷(auto和decltype)的使用
在C++11之前,每個(gè)數(shù)據(jù)類(lèi)型都需要在編譯時(shí)顯示聲明,在運(yùn)行時(shí)限制表達(dá)式的值,但在C++的新版本之后,引入了 auto 和 decltype等關(guān)鍵字,本文就來(lái)介紹一下C++中類(lèi)型推斷(auto和decltype)的使用,感興趣的可以了解一下2023-12-12
C++標(biāo)準(zhǔn)庫(kù)bitset類(lèi)型的簡(jiǎn)單使用方法介紹
這篇文章主要介紹了C++標(biāo)準(zhǔn)庫(kù)bitset類(lèi)型的簡(jiǎn)單使用方法,需要的朋友可以參考下2017-07-07
Qt實(shí)現(xiàn)數(shù)據(jù)進(jìn)行加密、解密的步驟
本文主要介紹了Qt實(shí)現(xiàn)數(shù)據(jù)進(jìn)行加密、解密的步驟,包含QCryptographicHash和Qt-AES兩種庫(kù)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03

