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

詳解C語言實現猜數字游戲

 更新時間:2022年01月18日 15:14:17   作者:build.code  
這篇文章主要為大家介紹了C語言實現猜數字游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>

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

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

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

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

二:程序設計思路

1.總體思路:

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

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

2.菜單部分函數:

菜單部分函數

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

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

3.游戲部分函數

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

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

C語言中提供了生成隨機數的函數rand函數

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

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

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

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

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

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

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

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

輸入time返回一個時間戳

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

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

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

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

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

4.主函數部分

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;
}

主函數中使用了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("猜數字\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;}#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("猜數字\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函數生成隨機數。

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • C++實現LeetCode(75.顏色排序)

    C++實現LeetCode(75.顏色排序)

    這篇文章主要介紹了C++實現LeetCode(75.顏色排序),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • C語言數據的存儲詳解

    C語言數據的存儲詳解

    本文詳細講解了C語言數據的存儲,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • C語言實現flappy bird游戲

    C語言實現flappy bird游戲

    這篇文章主要為大家詳細介紹了C語言實現flappy bird小游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • c++中深淺拷貝以及寫時拷貝的實現示例代碼

    c++中深淺拷貝以及寫時拷貝的實現示例代碼

    這篇文章主要給大家介紹了關于c++中深淺拷貝以及寫時拷貝實現的相關資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。
    2017-08-08
  • 用C語言實現貪吃蛇小游戲

    用C語言實現貪吃蛇小游戲

    這篇文章主要為大家詳細介紹了用C語言實現貪吃蛇小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C語言操作符基礎知識圖文詳解

    C語言操作符基礎知識圖文詳解

    這篇文章主要以圖文結合的方式為大家詳細介紹了C語言位運算基礎知識,感興趣的小伙伴們可以參考一下,希望能給你帶來幫助
    2021-08-08
  • c++關鍵字const的用法詳解

    c++關鍵字const的用法詳解

    在類中,如果你不希望某些數據被修改,可以使用const關鍵字加以限定。const 可以用來修飾成員變量、成員函數以及對象,希望能夠給你帶來幫助
    2021-09-09
  • 200行C語言代碼實現簡易三子棋游戲

    200行C語言代碼實現簡易三子棋游戲

    三子棋(井字棋)我們的童年或多或少都體驗過這個游戲的樂趣,本子隨手一畫就是一局游戲的開始,下面這篇文章主要給大家介紹了關于200行C語言代碼實現簡易三子棋游戲的相關資料,需要的朋友可以參考下
    2023-05-05
  • mfc入門教程之通過控制變量制作計算器

    mfc入門教程之通過控制變量制作計算器

    這篇文章主要介紹了mfc入門教程之通過控制變量制作計算器,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • C++ 11和C++98相比有哪些新特性

    C++ 11和C++98相比有哪些新特性

    C++11標準提供了許多有用的新特性。這篇文章特別針對使C++11和C++98相比看上去像一門新語言的特性
    2017-03-03

最新評論

中宁县| 屏南县| 苍梧县| 古交市| 疏勒县| 垫江县| 泉州市| 清苑县| 开阳县| 临漳县| 西华县| 仁布县| 莲花县| 丘北县| 徐汇区| 胶州市| 旅游| 上饶市| 阳春市| 晋州市| 九江市| 湘阴县| 孝感市| 衡山县| 博爱县| 河池市| 黄石市| 仁怀市| 濮阳县| 肇州县| 博客| 阜新| 和林格尔县| 乌兰浩特市| 利津县| 赤峰市| 邢台县| 县级市| 遂溪县| 辽阳县| 大渡口区|