猜数字小游戏

简介:

@[TOC]

前言:

1.博主实力有限,有什么错误的地方,请指出,非常感谢!
2.猜数字游戏最麻烦的地方在于:制造那个要猜的数字即随机数。详见我的另外一篇博客:随机数的生成

思路:

void menu()
{
    printf("**************************\n");
    printf("*****1.Play***************\n");
    printf("*****0.Exit***************\n");

}

int main ()
{
    
    srand((size_t)time(NULL));//设置随机数种子
    int choice = 0;//注意别把choice放到do语句里面,
                   //因为当while判断循环条件choice时,choice的生命周期已经结束。
    
    do
    {
        menu();
        scanf("%d", &choice);
        switch (choice)//注意break的使用。
        {
        case 1:game();
            break;
        case 0:printf("退出\n");
            break;
        default:printf("选择错误\n");
            break;
        }
    } while (choice);
    
    return 0;
}
void game()
{

    int a = rand()%100;//通过%运算符生成100以内的随机数。
    int x = 0;
    while (1)
    {
        printf("请输入你所猜的数:");
            scanf("%d", &x);
        if (x == a)
        {
            printf("恭喜你猜对了,该数字是%d\n", a);
            break;
        }
        else if(x>a)
         {
            printf("猜大了\n");
        }
        else
        {
            printf("猜小了\n");
        }
    }
}

全部代码:

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h> 
#include <time.h>
void menu()
{
    printf("**************************\n");
    printf("*****1.Play***************\n");
    printf("*****0.Exit***************\n");

}

void game()
{

    int a = rand()%100;//通过%运算符生成100以内的随机数。
    int x = 0;
    while (1)
    {
        printf("请输入你所猜的数:");
            scanf("%d", &x);
        if (x == a)
        {
            printf("恭喜你猜对了,该数字是%d\n", a);
            break;
        }
        else if(x>a)
         {
            printf("猜大了\n");
        }
        else
        {
            printf("猜小了\n");
        }
    }
}

int main ()
{
    
    srand((size_t)time(NULL));//设置随机数种子
    int choice = 0;//注意别把choice放到do语句里面,
                   //因为当while判断循环条件choice时,choice的生命周期已经结束。
    
    do
    {
        menu();
        scanf("%d", &choice);
        switch (choice)//注意break的使用。
        {
        case 1:game();
            break;
        case 0:printf("退出\n");
            break;
        default:printf("选择错误\n");
            break;
        }
    } while (choice);
    
    return 0;
}

总结:

1.程序需要的函数较少,代码较短,因此可以不需要自定义函数库。
2.随机数的生成需要格外注意。最好别把srand()放到循环中
相关文章
|
21天前
|
机器学习/深度学习 人工智能 缓存
让AI评测AI:构建智能客服的自动化运营Agent体系
大模型推动客服智能化演进,从规则引擎到RAG,再到AI原生智能体。通过构建“评估-诊断-优化”闭环的运营Agent,实现对话效果自动化评测与持续优化,显著提升服务质量和效率。
602 21
让AI评测AI:构建智能客服的自动化运营Agent体系
|
1月前
|
人工智能 供应链 算法
深度盘点:2025年能源管理平台厂商排行榜与深度价值评析
在“双碳”战略背景下,企业能源管理正迈向价值创造新阶段。本文基于技术、行业、规模与生态四大维度,权威发布2025能源管理平台厂商排行榜,深度解析树根科技、华为云、阿里云等十大厂商核心优势,助力企业精准匹配战略伙伴,实现能效提升与可持续发展。
286 0
|
机器学习/深度学习 人工智能 安全
【AI系统】AI系统的设计目标与挑战
本文探讨了AI系统设计的核心目标及其面临的挑战。AI系统作为硬件与应用间的桥梁,需提升开发效率、优化用户体验,并支持数据处理、模型训练等全生命周期环节。此外,还需在系统级上灵活支持多样化AI任务,应对新技术带来的挑战,如动态图支持、大规模部署及安全需求。未来,AI系统设计将更注重高效、灵活与安全。
440 0
|
C语言 图形学 芯片
【LVGL快速入门】LVGL开源框架入门教程之框架移植(一)
LVGL开源框架入门教程之框架移植(一)
1529 2
|
人工智能 Java Spring
Spring框架下,如何让你的日志管理像‘AI’一样智能,提升开发效率的秘密武器!
【8月更文挑战第31天】日志管理在软件开发中至关重要,不仅能帮助开发者追踪问题和调试程序,还是系统监控和运维的重要工具。在Spring框架下,通过合理配置Logback等日志框架,可大幅提升日志管理效率。本文将介绍如何引入日志框架、配置日志级别、在代码中使用Logger,以及利用ELK等工具进行日志聚合和分析,帮助你构建高效、可靠的日志管理系统,为开发和运维提供支持。
360 0
|
缓存 网络协议 网络性能优化
运输层---UDP协议
运输层---UDP协议
283 3
|
人工智能 数据挖掘 大数据
不可不知的数据分析演进史:重塑世界的里程碑与先驱者
不可不知的数据分析演进史:重塑世界的里程碑与先驱者
|
Linux 调度 数据库
Django使用django-apscheduler实现定时任务
【7月更文挑战第8天】定时任务可以在后台定时执行指定的代码,避免了很多人为操作。下面是在Django项目中如何使用定时任务的具体操作流程
1202 1
|
存储 安全 Devops
这个代码托管平台真的香!比 Github 速度更快!!!
这个代码托管平台真的香!比 Github 速度更快!!!
5812 0
这个代码托管平台真的香!比 Github 速度更快!!!