使用C语言写出猜数字游戏

1.思路

1.我们需要电脑生成一个随机数

2.玩家进行猜数字

3.玩过一次可以再玩一次,那么至少要进去一次,可以使用do...while循环

2.大体结构(主函数)

使用do...while循环,使游戏至少进入一次,然后根据菜单提示选择:开始或者退出游戏

需要用到Switch  case语句,来进行判断。

然后加入菜单函数进行选择,1.开始游戏,进入game()函数 0.退出游戏,跳出循环  ,如果输入错误,循环再进行选择。

int main()//主函数
{
    int input = 0;
    printf("猜数字,1--100之间\n");
    //do...while循环
    do
    {
        menu();//菜单函数
        
        printf("请选择数字:>");
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game();//游戏函数
            break;
        case 0:
            printf("已退出游戏\n");
            break;
        default:
            printf("输入错误,请重新输入\n");
            break;
        }
    } while (input);
    return 0;
}

3.菜单函数(menu)

使用printf 打印出菜单,void 表示无返回

void menu()//菜单函数
{
    printf("|----------------------------------------------------|\n");
    printf("|------------------- 1.开始游戏 -----------------|\n");
    printf("|------------------- 0.退出游戏 -----------------|\n");
    printf("|----------------------------------------------------|\n");
}

4.游戏函数(game)

在game()函数内部要使电脑生成一个随机数,由玩家来猜数字。在C语言rand()函数是专门生成随机数的,并且会返回一个随机整数,在0——RAND MAX之间(0----32767),但是在使用rand()之前需要调用srand()函数(设置随机数的生成器),否者随机数生成第一次和第二次完全相同

srand()函数是设置一个随机起点,需要使用整型,但由于整型为固定值,随机值也相同,所以我们需要一个每时每刻都在发生变化的值,那就是:时间戳(是计算机当前时间-起始时间)所得到的值就是时间戳,使用时间戳来设置随机数的生成起点,使用时间戳要用time()函数来获取当前时间,srand函数返回值为unsigned int 类型,那么要将time强制类型转换成unsigned int 类型,time(NULL)为空指针。

srand 生成起点不能多次调用,否则会出现相同的情况,放在主函数内部调用一次就可以。

4.猜数字

随机数是在0--32767之间,数字比较大,很难猜对,所以我们将随机值%100+1(%100余数在1-99之间再+1,就是1-100之间),就会得到1--100之间的数字。

然后进行猜数字,需要进行循环,如果猜大了,提示猜大了,如果猜小了,就提示猜小了,如果猜对了,跳出循环,进行下一次选择。

5.游戏运行和完整程序

代码:

#include<stdio.h>
#include<stdlib.h>//头文件
#include<time.h>

void menu()//菜单函数
{
    printf("|----------------------------------------------------|\n");
    printf("|------------------- 1.开始游戏 -----------------|\n");
    printf("|------------------- 0.退出游戏 -----------------|\n");
    printf("|----------------------------------------------------|\n");
}
void game()//游戏函数
{
    int i = 0;
    int ret = rand()%100+1 ;//生成随机数
    printf("请猜数字\n");
    while (1)//while循环,如果猜对跳出来
    {
        scanf("%d", &i);
        if (i < ret)
        {
            printf("猜小了!\n");
        }
        else if (i>ret)
        {
            printf("猜大了!\n");
        }
        else
        {
            printf("恭喜你!!猜对了!\n");
            break;
        }
    }
}
int main()//主函数
{
    srand((unsigned int)time(NULL));//随机数生成
    int input = 0;
    printf("猜数字,1--100之间\n");
    //do...while循环
    do
    {
        menu();//菜单函数

printf("请选择数字:>");
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game();//游戏函数
            break;
        case 0:
            printf("已退出游戏\n");
            break;
        default:
            printf("输入错误,请重新输入\n");
            break;
        }
    } while (input);
    return 0;
}

C语言猜数字游戏(详解)相关推荐

  1. C语言—猜数字游戏的实现

    目录 目录 完整的程序 打印菜单 主函数部分 生成随机数 猜数字函数的实现 我们已经学习到了C语言的一些基本知识和分支循环语句了,可以自己动一动手来尝试实现C语言-猜数字游戏了,为了猜数字程序的实现, ...

  2. c语言猜数字游戏用while,用C语言实现猜数字游戏

    本文实例为大家分享了C语言实现猜数字的具体代码,供大家参考,具体内容如下 问题:计算机随机生成一个数字,用户进行猜数字,当用户猜错时,提醒用户猜高/猜低,直到用户猜的数字与计算机给的随机数一致时,提示 ...

  3. 【趣学】C语言猜数字游戏

    目录 一.前言 二.从游戏初始界面开始 三.游戏实现 ①rand函数 ②srand函数 ③时间戳 ④time函数 一.前言 学习的过程有时候会有些许枯燥,但换一种方式学习也算是一种有趣的事情,呀哈,写 ...

  4. 【小白系列】C语言 猜数字游戏

    目录 1.前言 2.编写思路 3.代码实现 3.1菜单代码 3.2游戏代码 3.2-1 rand函数 3.2-2 srand 函数 3.2-3 time函数 4.注意事项 5.完整的猜数字游戏代码展示 ...

  5. C语言 猜数字游戏

    猜数字游戏 规则:给定一个范围如[1,100],系统生成一个范围内随机数字,用户随便输入一个整数,如果用户输入的数字比系统生成的数字小就提示"猜低了",如果用户输入的数字比系统生成 ...

  6. c语言猜字谜(详解)(后附完整源码)

    c语言猜字谜 一.游戏前置 二.游戏实现 1.让电脑生成随机数 2.让玩家重复输入 3.输赢判断 一.游戏前置 向其他游戏一样,在游戏开始前,我们需要一个菜单让玩家进行选择 所以我们需要以下功能 1. ...

  7. c语言猜数字游戏用while,【C语言基础】有趣的猜数字游戏。(while循环,if语句,switch语句)...

    要求:猜数字游戏的实现.代码如下:#include #include #include void menu() { printf("***************************** ...

  8. c语言猜四位数游戏猜10次,C语言猜数字游戏--随机生成4个不相同的数字从小到大排序,用户开始游戏,如果用户猜对数字和数字对应的位置,界面回馈A,如果数字正确位置不正确,则回馈B...

    1.看程序运行截图吧!! 由于博主本人较笨,就不动画演示了,如果动画的话可能将是一个漫长的过程! 猜数字游戏.png 2.游戏题目 随机生成4个不相同的数字从小到大排序,用户开始游戏,如果用户猜对数字 ...

  9. c#语言猜数字游戏,C#实现猜数字游戏

    本文实例为大家分享了C#实现猜数字游戏具体代码,供大家参考,具体内容如下 给定一个0-100的随机数字猜其大小 题目样式: 电脑产生一个0到100之间的随机数字,并且要求用户来猜,如果用户猜的数字比这 ...

最新文章

  1. 请概述可视化卷积神经网络的中间输出的基本思想。_卷积神经网络为什么能称霸计算机视觉领域?...
  2. python2 urllib2,Python urllib2保持活着
  3. wiremock 使用_使用WireMock进行更好的集成测试
  4. 第 37 章 ACOS - CLI
  5. mysql的set架构_MYSQL 整体架构浅析
  6. linux php 5.3 变慢,异常在 PHP 5.3 中的最佳实践
  7. inner join 与 left join 、right join之间的区别
  8. 实现拍照_成电最强拍照地点合集,以及帮你实现它们的拍照师傅
  9. 简单粗暴地理解 JS 原型链
  10. 收下这10个终身学习资源号,Max你的工作效率
  11. 从我国第一例计算机病毒是小球病毒,传入我国的第一例计算机病毒是
  12. 武大计算机考研 932教材,2018武汉大学考研官方指定参考书目
  13. 终端一直显示 (master) ,即终端一直处于master分支下的取消办法
  14. python爬虫-基础入门-python爬虫突破封锁
  15. 20sccm_SCCM 完全手册
  16. 小火狐进化_神奇宝贝御三家还是原来的最可爱?新的三只也不差
  17. 假程序员启示录:房价
  18. 筛法打印质数表【附:100000以内质数表】
  19. 微信发朋友圈/评论/点赞/搜索/购物车测试点
  20. 实验吧-隐写术-FIVE1

热门文章

  1. 【科创人】DataVisor创始人谢映莲:智能生意应坚守数据道德
  2. 一个企业上线PLM系统前应该做些什么?杰信PLM
  3. 视频 | 马云:如果有天阿里不在了,我们也要为世界留下这三样
  4. 访南京后,回昆山之夜
  5. nexus配置阿里云仓库
  6. c语言程序结构体排序,如何用C语言的结构体数组中的某一值排序?
  7. 一个25分钟的定时器(番茄时钟)
  8. element表格里面放图片_elementUI 表格中预览图片
  9. 图片传输中的转码问题
  10. 2010/12/19英语单词背诵