最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言超詳細(xì)講解猜數(shù)字游戲的實(shí)現(xiàn)

 更新時(shí)間:2022年07月14日 10:03:23   作者:白朝槿kk  
現(xiàn)在很多游戲都有抽獎抽卡的功能,其實(shí)這個(gè)就類似于猜數(shù)字,生成一個(gè)隨機(jī)數(shù),然后你去猜,猜對了就得獎。猜到一定次數(shù)就會保底。要實(shí)現(xiàn)猜數(shù)字的小游戲,首先是要讓程序生成隨機(jī)數(shù),這就要用到rand、srand和time這三個(gè)函數(shù),其次要了解時(shí)間戳

rand函數(shù)

先看一下下面這張圖:

通過這張圖我們可以了解到rand函數(shù)的返回值是int類型,形參為空,它的頭文件<stdlib.h>以及它的返回值范圍是0到RAND_MAX. 而RAND_MAX在VS中是0x7fff,轉(zhuǎn)換成二進(jìn)制就是32767.所以rand返回的隨機(jī)數(shù)的范圍就是0到32727。

其實(shí)我們用rand函數(shù)就可以生成隨機(jī)數(shù)了,那為什么我們還要用到srand函數(shù)呢?

因?yàn)橹挥械谝淮紊傻碾S機(jī)數(shù)是隨機(jī)的,如果程序執(zhí)行多次,那第二次之后生成的隨機(jī)數(shù)就會和第一次生成的一樣。這是一種偽隨機(jī)。

因此只用到rand函數(shù)是不夠的,我們要用rand函數(shù)之前,先用strand函數(shù)。

srand函數(shù)

看一下strand函數(shù),返回值為void,形參是int類型的數(shù)據(jù),要用strand函數(shù),首先要給strand傳一個(gè)int類型的數(shù)據(jù),根據(jù)傳進(jìn)去的值不同,生成的隨機(jī)數(shù)也不同。但是這樣就矛盾了。生成一個(gè)隨機(jī)數(shù)之前首先要傳進(jìn)去一個(gè)隨機(jī)數(shù),為了解決這個(gè)問題,就要使用時(shí)間戳。

時(shí)間戳

我們無法給它一個(gè)隨機(jī)數(shù),但是我們可以用時(shí)間作為參數(shù)傳進(jìn)去,時(shí)間是變的,這樣生成的隨機(jī)數(shù)也就是變的。怎么獲得時(shí)間戳呢?C語言也為我們提供了一個(gè)time函數(shù)可以幫助我們獲得時(shí)間戳。

time的頭文件是<time.h>,time的函數(shù)原型有點(diǎn)復(fù)雜,看不懂沒關(guān)系,會用就行。我們只是要把time的值作為參數(shù)傳給strand函數(shù)。strand的形參是unsigned int類型的,而time的返回值是time_t類型的,我們可以強(qiáng)制類型轉(zhuǎn)換。time的形參是指針類型的參數(shù),我們用NULL就可以了。

srand((unsigned int)time(NULL));

解決完這個(gè)問題,我們還要解決rand生成隨機(jī)數(shù)的范圍的問題,我們?nèi)绻@得一個(gè)1~N之間的數(shù)的話,就要對生成的隨機(jī)數(shù)對N進(jìn)行取余+1.為了方便猜數(shù)字,生成的隨機(jī)數(shù)范圍就控制在1到100.猜數(shù)字不是一次就能才對的,猜不對就要一直猜,猜對了才退出。下面是完整代碼。

完整代碼與程序運(yùn)行圖

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
	printf("|-------------------|\n");
	printf("|-----1.玩游戲------|\n");
	printf("|-----0.退出--------|\n");
	printf("|-------------------|\n");
}
void game()
{
	int ret = rand()%100+1;
	int m = 0;
	while (1)
	{
		scanf("%d", &m);
		if (m > ret)
		{
			printf("猜大了!\n");
		}
		else if (m < ret)
		{
			printf("猜小了!\n");
		}
		else
		{
			printf("恭喜你,猜對了!\n");
			break;
		}
	}
}
int main()
{
	srand((unsigned int)time(NULL));
	int n = 0;
	do
	{
		menu();
		printf("請選擇:");
		scanf("%d", &n);
		switch (n)
		{
		case 1:
			printf("開始猜數(shù)字\n");
			game();
			break;
		case 0:
			printf("已退出\n");
			break;
		default:
			printf("選擇錯(cuò)誤,請重新選擇\n");
			break;
		}
	} while(n);
	return 0;
}

程序運(yùn)行圖如下:

到此這篇關(guān)于C語言超詳細(xì)講解猜數(shù)字游戲的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)C語言猜數(shù)字游戲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一起來學(xué)習(xí)C++的動態(tài)內(nèi)存管理

    一起來學(xué)習(xí)C++的動態(tài)內(nèi)存管理

    這篇文章主要為大家詳細(xì)介紹了C++的動態(tài)內(nèi)存管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • c++使用Easyx圖形庫實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    c++使用Easyx圖形庫實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    本文詳細(xì)講解了c++使用Easyx圖形庫實(shí)現(xiàn)飛機(jī)大戰(zhàn),文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • QT串口通信的實(shí)現(xiàn)方法

    QT串口通信的實(shí)現(xiàn)方法

    如果用qt寫程序作為上位機(jī),然后通過和usb和下位機(jī)通信的時(shí)候,就需要用到qt中的串口通信了。本文介紹了QT串口通信的實(shí)現(xiàn)方法,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C/C++程序編譯流程詳解

    C/C++程序編譯流程詳解

    C/C++程序編譯過程包括下面4個(gè)階段:1.預(yù)處理,2.編譯,3.匯編,4.鏈接。下面我們就來詳細(xì)分析下這幾個(gè)階段。
    2016-04-04
  • 利用C語言解決八皇后問題以及解析

    利用C語言解決八皇后問題以及解析

    這篇文章主要給大家介紹了關(guān)于利用C語言解決八皇后問題以及解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • 簡單總結(jié)C++中的修飾符類型

    簡單總結(jié)C++中的修飾符類型

    這篇文章主要介紹了C++中的修飾符類型總結(jié),是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2016-05-05
  • C++設(shè)計(jì)模式之適配器模式

    C++設(shè)計(jì)模式之適配器模式

    這篇文章主要介紹了C++設(shè)計(jì)模式之適配器模式,本文詳細(xì)講解了C++中的適配器模式,并給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-09-09
  • C語言實(shí)現(xiàn)掃雷小項(xiàng)目

    C語言實(shí)現(xiàn)掃雷小項(xiàng)目

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)掃雷小項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 利用C++編寫簡易寶可夢對戰(zhàn)小游戲

    利用C++編寫簡易寶可夢對戰(zhàn)小游戲

    本文利用C++語言編寫了一個(gè)小時(shí)候課間嘴上玩的那種寶可夢游戲,只有早期的三個(gè)寶可夢和基礎(chǔ)招式,感興趣的朋友快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • C語言實(shí)現(xiàn)數(shù)字連連看

    C語言實(shí)現(xiàn)數(shù)字連連看

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)數(shù)字連連看游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評論

禹州市| 衡山县| 景洪市| 灌云县| 西林县| 北宁市| 洞口县| 儋州市| 香格里拉县| 井陉县| 卢湾区| 尚志市| 张北县| 阿克| 乐昌市| 嘉鱼县| 墨脱县| 定陶县| 南充市| 酒泉市| 游戏| 齐齐哈尔市| 昌图县| 南宫市| 桂东县| 临漳县| 象州县| 宣恩县| 额济纳旗| 芮城县| 兴业县| 丰台区| 姚安县| 岑巩县| 呼图壁县| 乌兰浩特市| 睢宁县| 光山县| 北票市| 孝感市| 罗山县|