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

C語言代碼實現(xiàn)猜數(shù)字游戲

 更新時間:2022年01月17日 08:36:40   作者:build.code  
大家好,本篇文章主要講的是C語言代碼實現(xiàn)猜數(shù)字游戲,感興趣的同學趕快來看一看了吧,對你有幫助的話記得收藏一下

前言:

本文主要講解以c語言編寫猜數(shù)字游戲,目的是介紹C語言中的循環(huán)和分支的具體用法。

一:猜數(shù)字游戲基本介紹&對程序預期

.猜數(shù)字游戲,顧名思義,就是系統(tǒng)隨機給出一個數(shù)字,玩家對這個數(shù)字進行猜測,如果玩家猜測的數(shù)字大于給出的數(shù)字,則系統(tǒng)會提示猜大了,如果玩家猜測的數(shù)字小于給出的數(shù)字,則系統(tǒng)會提示猜小了,這樣逐步縮小猜測范圍,直到玩家猜對為止。

2.程序預期:猜數(shù)字結束后,玩家如果猜對了的話可以繼續(xù)游戲,也可以退出游戲

二:程序設計思路

1.總體思路:

首先,實現(xiàn)游戲功能必須要有一個菜單來提示玩家如何進行操作。其次,為了代碼具有可讀性,可以將游戲部分函數(shù)和菜單部分函數(shù)作為兩個子函數(shù),然后在主函數(shù)調用他們。然后我們?yōu)榱藢崿F(xiàn)玩家可以多次游戲可以使用循環(huán)。

綜上所述,我們應該設計兩個子函數(shù):菜單函數(shù)和游戲函數(shù)。一個主函數(shù)

2.菜單部分函數(shù):

菜單部分函數(shù)

void menu()
{
	
	printf("***********************************************\n");
	printf("*************************1play*****************\n");
	printf("*************************0exit*****************\n");
	printf("***********************************************\n");
}

菜單函數(shù)設計相對簡單,只是為了提示玩家如何操作

3.游戲部分函數(shù)

void game()
{
	srand((unsigned int)time(NULL));
	int ret = rand() % 100 + 1;
	while (1)
	{
		printf("猜數(shù)字\n");
		int guess = 0;
		scanf("%d", &guess);
		if (guess > ret)
		{
			printf("猜大了\n");
		}
		else if (guess < ret)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("猜對了\n");
			break;
		}
		
	}
}

①在游戲函數(shù)部分,首先要生成隨機數(shù),生成隨機數(shù)的方法如下:

C語言中提供了生成隨機數(shù)的函數(shù)rand函數(shù)

rand函數(shù)會返回一個0到RAND-MAX的隨機整數(shù),使用這個函數(shù)需要包含頭文件<stdlib.h>

但是rand函數(shù)每次生成的隨機數(shù)相同,所以只用rand函數(shù)不夠,所以要使用srand()函數(shù)增加隨機性

后一句中說明在使用rand函數(shù)前要定義一個srand()函數(shù)

如畫線句所示,srand函數(shù)的作用就是一個隨機數(shù)的生成的種子。

而且需要一個無符號整型,在srand函數(shù)中括號輸入一個隨機數(shù)字即可生成隨機數(shù),時間正是一個一直在變化的數(shù)字。

在這里提出一個時間戳的概念:時間戳是指格林威治時間1970年01月01日00時00分00秒 (北京時間1970年01月01日08時00分00秒)起至現(xiàn)在的總秒數(shù)。

因為srand需要的參數(shù)是無符號類型,所以對time進行強制類型轉換。time后不需要參數(shù),所以給他一個空指針。

使用srand((unsigned int)time(NULL))

輸入time返回一個時間戳

需要一個頭文件<time.h>

因為給出的隨機數(shù)范圍太大,所以需要限定隨機數(shù)范圍

如下:int ret = rand()%100+1,將隨機數(shù)限定在0-100區(qū)間,便于猜測

②:猜數(shù)字環(huán)節(jié)

利用while循環(huán)來逐步縮小猜測范圍,當猜測的數(shù)字等于隨機數(shù)時提示”猜對了“。

4.主函數(shù)部分

int main()
{
	int input = 0;
 
	do
	{
		menu();
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			break;
		default:
			printf("輸入錯誤,請重新輸入");
		}
	} while (input);
	return 0;
}

主函數(shù)中使用了switch語句,和do-while語句

主要目的是為了玩家選擇是否進入游戲

5.代碼主體

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
void menu()
{
	
	printf("***********************************************\n");
	printf("*************************1play*****************\n");
	printf("*************************0exit*****************\n");
	printf("***********************************************\n");
}
void game()
{
	srand((unsigned int)time(NULL));
	int ret = rand() % 100 + 1;
	while (1)
	{
		printf("猜數(shù)字\n");
		int guess = 0;
		scanf("%d", &guess);
		if (guess > ret)
		{
			printf("猜大了\n");
		}
		else if (guess < ret)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("猜對了\n");
			break;
		}
		
	}
}
int main()
{
	int input = 0;
 
	do
	{
		menu();
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			break;
		default:
			printf("輸入錯誤,請重新輸入");
		}
	} while (input);
	return 0;
}

三:總結

此程序主要為了熟悉循環(huán)和分支的具體用法,并且學會利用時間戳和rand函數(shù)生成隨機數(shù)。

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

相關文章

  • 利用Qt制作簡單的日期選擇界面

    利用Qt制作簡單的日期選擇界面

    Qt自帶的日期選擇控件過于丑陋與難用,所以但凡有點小想法的人都會做一個全新的日歷。這篇文章就來利用Qt制作一個簡單的日期選擇界面,感興趣的可以了解一下
    2023-03-03
  • 模擬鼠標事件的實現(xiàn)思路及代碼

    模擬鼠標事件的實現(xiàn)思路及代碼

    這篇文章主要介紹了模擬鼠標事件的實現(xiàn)思路及代碼,有需要的朋友可以參考一下
    2013-12-12
  • 利用Qt實現(xiàn)獲取計算機的硬件信息

    利用Qt實現(xiàn)獲取計算機的硬件信息

    在開發(fā)時,常常會需要用到計算機的相關信息。利用這些信息,我們可以開發(fā)一些輔助模塊。本文將利用Qt實現(xiàn)獲取計算機的硬件信息,感興趣的可以嘗試一下
    2022-12-12
  • C++數(shù)據(jù)結構AVL樹全面分析

    C++數(shù)據(jù)結構AVL樹全面分析

    今天的這一篇博客,我要跟大家介紹一顆樹——AVL樹,它也是一顆二叉搜索樹,它就是在二叉搜索樹中加了一個平衡因子的概念在里面,下面我就來和大家聊一聊這棵樹是個怎么樣的樹
    2021-10-10
  • C語言實現(xiàn)兩個遞減數(shù)列中尋找某一個數(shù)

    C語言實現(xiàn)兩個遞減數(shù)列中尋找某一個數(shù)

    這篇文章主要介紹了C語言實現(xiàn)兩個遞減數(shù)列中尋找某一個數(shù),是一類經(jīng)典的數(shù)組操作算法,需要的朋友可以參考下
    2014-09-09
  • C語言水仙花數(shù)的實現(xiàn)

    C語言水仙花數(shù)的實現(xiàn)

    這篇文章主要介紹了C語言水仙花數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • C++如何保存bmp圖片

    C++如何保存bmp圖片

    這篇文章主要介紹了C++如何保存bmp圖片問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++ 冒泡排序數(shù)據(jù)結構、算法及改進算法

    C++ 冒泡排序數(shù)據(jù)結構、算法及改進算法

    冒泡排序是一種簡單排序。這種排序是采用“冒泡策略”將最大元素移到最右邊。在冒泡過程中,相鄰兩個元素比較,如果左邊大于右邊的,則進行交換兩個元素。這樣一次冒泡后,可確保最大的在最右邊。然后執(zhí)行n次冒泡后排序即可完畢
    2013-04-04
  • C++智能指針讀書筆記

    C++智能指針讀書筆記

    本篇隨筆僅作為個人學習《C++ Primer》智能指針一節(jié)后的部分小結,抄書嚴重,伴隨個人理解。主要介紹shared_ptr、make_shared、weak_ptr的用法和聯(lián)系
    2015-11-11
  • 深入解析C語言中常數(shù)的數(shù)據(jù)類型

    深入解析C語言中常數(shù)的數(shù)據(jù)類型

    C語言中常數(shù)的數(shù)據(jù)類型,需要的朋友可以過來參考下。希望對大家有所幫助
    2013-10-10

最新評論

沭阳县| 阿瓦提县| 邢台县| 西充县| 那曲县| 景泰县| 巴彦县| 冕宁县| 霞浦县| 湖北省| 历史| 鹤山市| 嘉荫县| 都安| 四会市| 龙江县| 衡阳县| 榕江县| 沈丘县| 宜州市| 宿迁市| 治县。| 南江县| 永安市| 恩施市| 康马县| 玉门市| 平谷区| 新河县| 巴马| 青铜峡市| 吉林省| 明溪县| 肇州县| 贵德县| 合作市| 昌宁县| 万山特区| 武鸣县| 柘城县| 慈溪市|