欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言實(shí)現(xiàn)猜數(shù)字游戲的兩種方法

 更新時(shí)間:2022年01月07日 09:39:36   作者:愛(ài)德蘇  
猜數(shù)字小游戲是我們大多數(shù)人學(xué)習(xí)C語(yǔ)言時(shí)都會(huì)了解到的一個(gè)有趣的C語(yǔ)言小游戲,本文就詳細(xì)的介紹一下,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

猜數(shù)字小游戲是我們大多數(shù)人學(xué)習(xí)C語(yǔ)言時(shí)都會(huì)了解到的一個(gè)有趣的C語(yǔ)言小游戲,下面我將詳細(xì)介紹該游戲的實(shí)現(xiàn)和編程邏輯。并用二分法速通該小游戲。玩小游戲的同時(shí),也能對(duì)C語(yǔ)言控制語(yǔ)句有更好的認(rèn)識(shí)。

一、游戲描述

游戲內(nèi)容

顧名思義,該程序讓系統(tǒng)隨機(jī)生成一個(gè)0-100的整數(shù),讓玩家來(lái)猜,玩家猜數(shù)字后,系統(tǒng)給予玩家回饋并且統(tǒng)計(jì)玩家猜的次數(shù),直到玩家猜對(duì)為止。

游戲方法

1、生成游戲菜單 1. play(進(jìn)入游戲) 0. exit (退出游戲)
2、使用循環(huán)語(yǔ)句,構(gòu)建游戲框架,使玩家可以進(jìn)行多次游戲,直到猜對(duì)為止。
3、設(shè)計(jì)游戲具體思路,使系統(tǒng)生成一個(gè)隨機(jī)數(shù),讓玩家輸入一個(gè)數(shù)字,然后兩個(gè)數(shù)字對(duì)比,根據(jù)系統(tǒng)反饋信息,逐漸鎖定目標(biāo)。

二、代碼實(shí)現(xiàn)

1.生成游戲菜單

(1)  void menu()

(2)效果顯示

2.構(gòu)建主函數(shù) 

int main()函數(shù)

使用 do--while() 循環(huán),玩家進(jìn)行多次猜數(shù)。用switch語(yǔ)句,控制玩游戲還是,退出游戲。

有時(shí)程序需要一個(gè)規(guī)定范圍內(nèi)的隨機(jī)數(shù)。要將隨機(jī)數(shù)的范圍限制在 1 和某個(gè)最大值 max 之間的整數(shù),可以使用以下公式:
number = rand() % max + 1;
例如,要生成 1-10 的隨機(jī)數(shù)來(lái)代表骰子的點(diǎn)數(shù),則可以使用以下語(yǔ)句:
dice = rand() % 610+ 1; 

3.構(gòu)建游戲函數(shù) 

游戲效果演示 :

三、二分法實(shí)現(xiàn)猜數(shù)

如果使用二分法進(jìn)行猜100以內(nèi)的任何一個(gè)隨機(jī)數(shù),最多七次就可以正確猜對(duì)該隨機(jī)數(shù)。

二分法又可以被稱為二分查找,它描述了在有序集合中搜索特定值的過(guò)程。廣義的二分查找是將問(wèn)題的規(guī)模盡可能的縮小到原有的一半。

程序通過(guò)二分法不斷縮小猜測(cè)范圍, 直到猜中n
例如n = 93
程序第一次猜測(cè)50, 判斷數(shù)值太小
第二次猜測(cè)75,判斷數(shù)值太小
第三次猜測(cè)87,判斷數(shù)值太小
第四次次猜測(cè)93, ringht

如果93不對(duì),我們還能繼續(xù)根據(jù)反饋縮小范圍,最多七次就可以猜對(duì)答案

代碼附上:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>//time系統(tǒng)時(shí)間頭文件 
void menu()//創(chuàng)建游戲菜單 
{
	printf("**************\n");
	printf("****1.play****\n");
	printf("****0.exit****\n");
	printf("**************\n");
 } 
void playgame()
{
	int magic=rand()%100+1;//隨機(jī)一個(gè)1-100的整數(shù) 
	int guess;
	int counter=0;//計(jì)數(shù)器,初始為0 
	while(1)
	{
		do{
		    printf("請(qǐng)猜一個(gè)數(shù)字:");//提示用戶進(jìn)行猜數(shù)字游戲,輸入一個(gè)整數(shù)
		    scanf("%d",&guess);
		    counter++;
		    if(guess>magic)//根據(jù)比較結(jié)果,提示用戶高了,低了,或是猜對(duì)了.
		    printf("太大了!\n");
		    else if(guess<magic)
		    printf("太小了!\n");
		else
		    printf("right!\n");	 
	    }while(guess!=magic);
	printf("您一共猜了%d次,你真是太棒了!\n",counter);
	}		
}
int main()
{
	int input=0;
	srand((unsigned int)time(0));//time(0)得到的是時(shí)間戳,對(duì)應(yīng)頭文件#include <time.h>
	do{
		menu();
	    scanf("%d",&input); 
	    switch(input)
	    {
	    	case 1:
	    		playgame();
	    		break;
	        case 0:
	        	exit(0);
	        	break;
	        default:
	        printf("輸入錯(cuò)誤!\n");
		}
	}while(input);
	return 0;
}

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

相關(guān)文章

  • c++項(xiàng)目構(gòu)成從cmake使用基礎(chǔ)詳解

    c++項(xiàng)目構(gòu)成從cmake使用基礎(chǔ)詳解

    這篇文章主要為大家介紹了c++項(xiàng)目構(gòu)成,從cmake使用基礎(chǔ)開(kāi)始為大家講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • C++中set/multiset容器詳解(附測(cè)試用例與結(jié)果圖)

    C++中set/multiset容器詳解(附測(cè)試用例與結(jié)果圖)

    set/multiset屬于關(guān)聯(lián)式容器,底層結(jié)構(gòu)是用二叉樹(shù)實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于C++中set/multiset容器的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • C++字符串反轉(zhuǎn)的幾種方法

    C++字符串反轉(zhuǎn)的幾種方法

    通過(guò)不同的方法,實(shí)現(xiàn)對(duì)所輸入字符串的反轉(zhuǎn),具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • c語(yǔ)言 兩字符串交叉合并實(shí)例

    c語(yǔ)言 兩字符串交叉合并實(shí)例

    今天小編就為大家分享一篇c語(yǔ)言 兩字符串交叉合并實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • C++函數(shù)返回值為對(duì)象時(shí),構(gòu)造析構(gòu)函數(shù)的執(zhí)行細(xì)節(jié)

    C++函數(shù)返回值為對(duì)象時(shí),構(gòu)造析構(gòu)函數(shù)的執(zhí)行細(xì)節(jié)

    C++函數(shù)返回值為對(duì)象時(shí),構(gòu)造析構(gòu)函數(shù)的執(zhí)行細(xì)節(jié),需要的朋友,可以參考下
    2013-02-02
  • 使用?c++?在?windows?上定時(shí)執(zhí)行一個(gè)函數(shù)的示例代碼

    使用?c++?在?windows?上定時(shí)執(zhí)行一個(gè)函數(shù)的示例代碼

    這篇文章主要介紹了使用c++在windows上穩(wěn)定定時(shí)執(zhí)行一個(gè)函數(shù),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 一文帶你搞懂C++中的流量控制

    一文帶你搞懂C++中的流量控制

    限流可以認(rèn)為服務(wù)降級(jí)的一種,限流就是限制系統(tǒng)的輸入和輸出流量已達(dá)到保護(hù)系統(tǒng)的目的,這篇文章小編就來(lái)帶大家深入了解一下如何利用C++實(shí)現(xiàn)流量控制吧
    2023-10-10
  • C++實(shí)現(xiàn)學(xué)生住宿管理系統(tǒng)

    C++實(shí)現(xiàn)學(xué)生住宿管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)生住宿管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++類與對(duì)象的詳細(xì)說(shuō)明

    C++類與對(duì)象的詳細(xì)說(shuō)明

    這篇文章主要為大家詳細(xì)介紹了C++的類與對(duì)象,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • C++11 中的std::function和std::bind詳解

    C++11 中的std::function和std::bind詳解

    這篇文章主要介紹了C++ 11 std::function和std::bind,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10

最新評(píng)論