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

C?語(yǔ)言實(shí)現(xiàn)猜數(shù)字小游戲完整示例代碼

 更新時(shí)間:2025年03月20日 09:48:12   作者:無(wú)愛(ài)如何釋懷  
這篇文章主要介紹了如何使用C語(yǔ)言生成1到100之間的隨機(jī)數(shù),并提供了一個(gè)簡(jiǎn)單的猜數(shù)字游戲的實(shí)現(xiàn)代碼,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

1.游戲要求

1.電腦隨機(jī)生成1到100的隨機(jī)數(shù)。

2.玩家猜數(shù)字,猜數(shù)字過(guò)程中,根據(jù)猜測(cè)數(shù)字的大小給出猜大或者猜小的結(jié)果反饋,直到猜對(duì),游戲結(jié)束。

2.隨機(jī)數(shù)生成

C語(yǔ)言提供了一個(gè)函數(shù)叫rand,這個(gè)函數(shù)可以生成隨機(jī)數(shù),函數(shù)原型如下:

該函數(shù)會(huì)返回一個(gè)偽隨機(jī)數(shù),這個(gè)隨機(jī)數(shù)的生成范圍實(shí)在0到RAND_MAX之間,       

RAND_MAX的大小是依賴編譯器上實(shí)現(xiàn)的,但是大部分編譯器上是32767。

rand函數(shù)的使用需要包括頭文件:stdlib.h。

第一次運(yùn)行:

第二次運(yùn)行:

由此可見(jiàn)兩次的運(yùn)行結(jié)果是一樣的,所以我們得到的不是真正意義上的隨機(jī)數(shù)。那是因?yàn)閞and函數(shù)是對(duì)一個(gè)叫“種子”的基準(zhǔn)值進(jìn)行運(yùn)算生成的隨機(jī)數(shù),又因?yàn)槟J(rèn)種子是1,所以這兩次運(yùn)算的結(jié)果是一樣的,如果想要生成不同的隨機(jī)數(shù),就要讓種子是變化的。

這時(shí)候我們引進(jìn)來(lái)一個(gè)新的函數(shù)叫srand,他是用來(lái)初始化隨機(jī)數(shù)的生成器,可以改變隨機(jī)數(shù)生成器的種子,srand的原型如下:

程序在調(diào)用rand函數(shù)前先調(diào)用srand函數(shù),通過(guò)srand函數(shù)的參數(shù)seed來(lái)設(shè)置rand函數(shù)生成隨機(jī)數(shù)的時(shí)候的種子,只要種子在變化,每次生成的隨機(jī)數(shù)就在變化。

那也就是說(shuō)給srand的種子如果是隨機(jī)的,rand就能生成隨機(jī)數(shù);在生成隨機(jī)數(shù)的同時(shí)又需要一個(gè)隨機(jī)數(shù) ,那這就矛盾了。

在程序中我們一般是使用程序運(yùn)行的時(shí)間作為種子的,因?yàn)闀r(shí)間時(shí)刻在發(fā)生變化的。

在C語(yǔ)言中有個(gè)函數(shù)叫time,就可以獲得這個(gè)時(shí)間,time函數(shù)的原型如下:

time 函數(shù)會(huì)返回當(dāng)前的?歷時(shí)間,其實(shí)返回的是1970年1?1?0時(shí)0分0秒到現(xiàn)在程序運(yùn)?時(shí)間之間的差值,單位是秒。返回的類型是time_t類型的,time_t 類型本質(zhì)上其實(shí)就是32位或者64位的整型類型

如果 timer 是NULL,就只返回這個(gè)時(shí)間的差值。time函數(shù)返回的這個(gè)時(shí)間差也被叫做:時(shí)間戳。

具體使用如下:

OK,現(xiàn)在隨機(jī)數(shù)的生成我們已經(jīng)解決,那我們要生成1到100之間的隨機(jī)數(shù)我們?cè)撊绾稳プ瞿牵?/p>

rand%100;  余數(shù)的范圍是0到99;

rand%100 + 1 ;范圍是1到100;

3.代碼

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//游戲邏輯
void game()
{
     int r = rand() % 100 + 1;
     int guess = 0;
     int count = 5;    
     while (count)
     {
         printf("\n你還有%d次機(jī)會(huì)\n", count);
         printf("請(qǐng)猜數(shù)字>:");
         scanf("%d", &guess);
         if (guess < r)
         {
             printf("猜?了\n");
         }
         else if (guess > r)
         {
             printf("猜?了\n");
         }
         else
         {
             printf("恭喜你,猜對(duì)了\n");
             break;
         }
             count--;
     }

         if (count == 0)
         {
             printf("你失敗了,正確值是:%d\n", r);
         }
}

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

int main()
{
    int input = 0;
    srand((unsigned int)time(NULL));
    do
    {
       menu();
       printf("請(qǐng)選擇:>");
       scanf("%d", &input);
    switch (input)
    {
       case 1:
             game();
       break;
       case 0:
             printf("游戲結(jié)束\n");
             break;
       default:
             printf("選擇錯(cuò)誤,重新選擇\n");
             break;
    }


    }while (input);

     return 0;
}

總結(jié) 

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

相關(guān)文章

  • Lua和C/C++互相調(diào)用實(shí)例分析

    Lua和C/C++互相調(diào)用實(shí)例分析

    今天小編就為大家分享一篇關(guān)于Lua和C/C++互相調(diào)用實(shí)例分析,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • C++中約數(shù)定理的實(shí)例詳解

    C++中約數(shù)定理的實(shí)例詳解

    這篇文章主要介紹了C++中約數(shù)定理的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • C++ 詳細(xì)講解stack與queue的模擬實(shí)現(xiàn)

    C++ 詳細(xì)講解stack與queue的模擬實(shí)現(xiàn)

    C++ Stack(堆棧) 是一個(gè)容器類的改編,為程序員提供了堆棧的全部功能,也就是說(shuō)實(shí)現(xiàn)了一個(gè)先進(jìn)后出(FILO)的數(shù)據(jù)結(jié)構(gòu),許多程序都使用了 queue 容器。queue 容器可以用來(lái)表示超市的結(jié)賬隊(duì)列或服務(wù)器上等待執(zhí)行的數(shù)據(jù)庫(kù)事務(wù)隊(duì)列
    2022-04-04
  • C語(yǔ)言實(shí)現(xiàn)三子棋的示例代碼

    C語(yǔ)言實(shí)現(xiàn)三子棋的示例代碼

    所謂三子棋,就是三行三列的棋盤,玩家可以和電腦下棋,率先連成三個(gè)的獲勝。這篇文章主要為大家詳細(xì)介紹了如何通過(guò)C語(yǔ)言實(shí)現(xiàn)三子棋小游戲,感興趣的小伙伴可以嘗試一下
    2023-01-01
  • 淺析C語(yǔ)言中typeof關(guān)鍵字用法

    淺析C語(yǔ)言中typeof關(guān)鍵字用法

    typeof關(guān)鍵字是C語(yǔ)言中的一個(gè)新擴(kuò)展。在linux內(nèi)核源代碼中廣泛使用。接下來(lái)通過(guò)本文給大家分享C語(yǔ)言中typeof關(guān)鍵字用法,需要的朋友參考下
    2017-02-02
  • 解析VC中預(yù)編譯頭文件的深入分析

    解析VC中預(yù)編譯頭文件的深入分析

    本篇文章是對(duì)VC中預(yù)編譯頭文件進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++中volatile和mutable關(guān)鍵字用法詳解

    C++中volatile和mutable關(guān)鍵字用法詳解

    這篇文章主要介紹了C++中volatile和mutable關(guān)鍵字用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • C語(yǔ)言例題之輸出1000以內(nèi)的所有完數(shù)

    C語(yǔ)言例題之輸出1000以內(nèi)的所有完數(shù)

    完數(shù)是一些特殊的自然數(shù),它所有的真因子(即除了自身以外的約數(shù))的和(即因子函數(shù)),恰好等于它本身,如果一個(gè)數(shù)恰好等于它的因子之和,則稱該數(shù)為“完數(shù)”,這篇文章主要給大家介紹了關(guān)于C語(yǔ)言例題之輸出1000以內(nèi)的所有完數(shù)的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Linux下動(dòng)靜態(tài)庫(kù)的打包與使用指南(C/C++)

    Linux下動(dòng)靜態(tài)庫(kù)的打包與使用指南(C/C++)

    c++是面向?qū)ο蟮木幊陶Z(yǔ)言,比較方便實(shí)現(xiàn)某些第三方庫(kù),比如翻譯其他面向?qū)ο笳Z(yǔ)言的代碼,比c語(yǔ)言要方便的多,下面這篇文章主要給大家介紹了關(guān)于Linux下C/C++動(dòng)靜態(tài)庫(kù)的打包與使用的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 詳解VisualS tudio Code開(kāi)發(fā)Arm嵌入式Linux應(yīng)用

    詳解VisualS tudio Code開(kāi)發(fā)Arm嵌入式Linux應(yīng)用

    本文介紹如何在 Visual Studio Code 中使用 Yocto Project 生成的 Linux SDK,并針對(duì) Arm 處理器進(jìn)行 C/C++ 應(yīng)用交叉編譯和調(diào)試,感興趣的朋友跟隨小編一起看看吧
    2021-04-04

最新評(píng)論

义乌市| 锦屏县| 贡嘎县| 花莲市| 韩城市| 沅陵县| 革吉县| 延庆县| 泰宁县| 玉树县| 崇左市| 平泉县| 吉林省| 蛟河市| 辽宁省| 家居| 依兰县| 思茅市| 庄河市| 嘉定区| 重庆市| 乐陵市| 宁晋县| 陆良县| 大悟县| 中牟县| 东乡县| 东光县| 民县| 静乐县| 台中县| 曲阳县| 汉川市| 上饶市| 罗甸县| 馆陶县| 婺源县| 墨竹工卡县| 措勤县| 霸州市| 普安县|