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

詳解C語言實(shí)現(xiàn)猜數(shù)字游戲

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

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

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

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

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

二:程序設(shè)計(jì)思路

1.總體思路:

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

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

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

菜單部分函數(shù)

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

菜單函數(shù)設(shè)計(jì)相對(duì)簡(jiǎn)單,只是為了提示玩家如何操作

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("猜對(duì)了\n");
			break;
		}
		
	}
}

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

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

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

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

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

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

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

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

因?yàn)閟rand需要的參數(shù)是無符號(hào)類型,所以對(duì)time進(jìn)行強(qiáng)制類型轉(zhuǎn)換。time后不需要參數(shù),所以給他一個(gè)空指針。

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

輸入time返回一個(gè)時(shí)間戳

需要一個(gè)頭文件<time.h>

因?yàn)榻o出的隨機(jī)數(shù)范圍太大,所以需要限定隨機(jī)數(shù)范圍

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

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

利用while循環(huán)來逐步縮小猜測(cè)范圍,當(dāng)猜測(cè)的數(shù)字等于隨機(jī)數(shù)時(shí)提示”猜對(duì)了“。

4.主函數(shù)部分

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

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

主要目的是為了玩家選擇是否進(jìn)入游戲

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("猜對(duì)了\n");break;}}}int main(){int input = 0;do{menu();scanf("%d", &input);switch (input){case 1:game();break;case 0:break;default:printf("輸入錯(cuò)誤,請(qǐng)重新輸入");}} 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("猜數(shù)字\n");
		int guess = 0;
		scanf("%d", &guess);
		if (guess > ret)
		{
			printf("猜大了\n");
		}
		else if (guess < ret)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("猜對(duì)了\n");
			break;
		}
	}
}
int main()
{
	int input = 0;
	do
	{
		menu();
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			break;
		default:
			printf("輸入錯(cuò)誤,請(qǐng)重新輸入");
		}
	} while (input);
	return 0;
}

三:總結(jié)

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

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

相關(guān)文章

  • C語言實(shí)現(xiàn)輸出鏈表中倒數(shù)第k個(gè)節(jié)點(diǎn)

    C語言實(shí)現(xiàn)輸出鏈表中倒數(shù)第k個(gè)節(jié)點(diǎn)

    這篇文章主要介紹了C語言實(shí)現(xiàn)輸出鏈表中倒數(shù)第k個(gè)節(jié)點(diǎn),主要涉及鏈表的遍歷操作,是數(shù)據(jù)結(jié)構(gòu)中鏈表的常見操作。需要的朋友可以參考下
    2014-09-09
  • C語言簡(jiǎn)單實(shí)現(xiàn)快速排序

    C語言簡(jiǎn)單實(shí)現(xiàn)快速排序

    快速排序是一種不穩(wěn)定排序,這篇文章主要為大家詳細(xì)介紹了C語言簡(jiǎn)單實(shí)現(xiàn)快速排序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C語言中形參和實(shí)參詳解及實(shí)例代碼

    C語言中形參和實(shí)參詳解及實(shí)例代碼

    這篇文章主要介紹了C語言中形參和實(shí)參詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • c++ 數(shù)字類型和字符串類型互轉(zhuǎn)詳解

    c++ 數(shù)字類型和字符串類型互轉(zhuǎn)詳解

    今天小編就為大家分享一篇講解c++ 數(shù)字類型和字符串類型互轉(zhuǎn)的文章,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-09-09
  • C++簡(jiǎn)明分析臨時(shí)對(duì)象是什么

    C++簡(jiǎn)明分析臨時(shí)對(duì)象是什么

    對(duì)性能來說,許多的問題都需要和出現(xiàn)頻率及本身執(zhí)行一次的開銷掛鉤,有些問題雖然看似比較開銷較大,但是很少會(huì)執(zhí)行到,那也不會(huì)對(duì)程序有大的影響;同樣一個(gè)很小開銷的函數(shù)執(zhí)行很頻繁,同樣會(huì)對(duì)程序的執(zhí)行效率有很大影響。本章中作者主要根據(jù)臨時(shí)對(duì)象來闡述這樣一個(gè)觀點(diǎn)
    2022-04-04
  • 解決C語言數(shù)組元素循環(huán)右移的問題

    解決C語言數(shù)組元素循環(huán)右移的問題

    今天小編就為大家分享一篇解決C語言數(shù)組元素循環(huán)右移的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • C++深入探究引用的使用

    C++深入探究引用的使用

    引用是C++一個(gè)很重要的特性,顧名思義是某一個(gè)變量或?qū)ο蟮膭e名,對(duì)引用的操作與對(duì)其所綁定的變量或?qū)ο蟮牟僮魍耆葍r(jià),這篇文章主要給大家總結(jié)介紹了C++中引用的相關(guān)知識(shí)點(diǎn),需要的朋友可以參考下
    2022-05-05
  • 一起來看看C++STL容器之string類

    一起來看看C++STL容器之string類

    這篇文章主要為大家詳細(xì)介紹了C++STL容器之string類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 詳解C語言和Python中的線程混用

    詳解C語言和Python中的線程混用

    這篇文章主要介紹了C和Python中的線程混用的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 教你用c++從頭開始實(shí)現(xiàn)決策樹

    教你用c++從頭開始實(shí)現(xiàn)決策樹

    從頭實(shí)現(xiàn)一個(gè)分類決策樹分類器似乎是一個(gè)適當(dāng)?shù)奶魬?zhàn)。這已經(jīng)被證明是一個(gè)測(cè)試但有益的學(xué)習(xí)旅程,我想分享一些我在這個(gè)過程中的主要經(jīng)驗(yàn),對(duì)c++實(shí)現(xiàn)決策樹相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-05-05

最新評(píng)論