鹏哥C语言39---分支/循环语句练习:猜数字游戏

embedded/2024/9/21 9:30:04/

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

//void fun(int a[])  //因为传过来的是地址,所以应该用一个指针变量来接收,故这里的 a 本质上是个指针变量
//{
//    printf("%zu", sizeof(a));//输出 8  在x64下,指针大小是八个字节
//}
//int main()
//{
//    int a[10] = { 0 };
//    printf("%zu\n", sizeof(a)); // 输出 40
//    //sizeof 计算字符串长度,单位是字节,一个整型字符4个字节,a 共有10个字符的空间,所以是4*10
//    printf("%zu\n", sizeof(a[1]));// 输出 4
//    // a[1] 表示下标为1的元素,即第二个元素,一个整型字符四个字节,故 sizeof(a[1])=4
//
//    fun(a); //数组传参的时候传递的是数组首元素的地址
//
//    return 0;
//
//}

//--------------------------------------------------------------------------------------------------------3.4.3 猜数字游戏  实现
// 电脑产生一个随机数(范围1-100)
// 猜随机数
// 反馈: 猜大了/猜小了
// 猜对了就结束

//设计菜单页
void menu()
{
    printf("****************************************\n");
    printf("**************   1.play   **************\n");
    printf("**************   0.exit   **************\n");
    printf("****************************************\n");
}

//game函数------------猜数字的逻辑
void game()
{
    int guess = 0;
    //  1.----------------------------------电脑生成随机数
    // 生成随机数范围(系统定义) 0--RAND_MAX(32767)
    // int ret = rand();//生成随机数的函数  0--32767
    //rand能生成随机数,但是是伪随机数,所以加一个时间
    int ret = rand() % 100 + 1;//生成随机数 0--100
    // printf("%d", ret);//生成的随机数不能看
    
    //  2.----------------------------------猜数字
    while(1)
    {
        printf("请猜数字:>");
        scanf("%d", &guess);
        if (guess < ret)
        {
            printf("猜小了\n");
        }
        else if (guess > ret)
        {
            printf("猜大了\n");
        }
        else
        {
            printf("恭喜你,猜对了!");
            break;
        }

    }


}

// int *p=NULL
//NULL空指针
int main()
{
    
    int input =0;
    srand((unsigned int)time(NULL));//生成随机数的起点

    do
    {
        //设计菜单页
        menu();
        printf("请选择:>");
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game(); //猜数字的整个逻辑----调用一个函数
            printf("猜数字\n");
            break;
        case 0:
            printf("退出游戏\n");
            break;
        default:
            printf("选择错误,请重新选择!\n");
            break;
        }
    }  while (input); // input 为真(不为0),进入循环
//--------------------------------------------------------------------写一部分,测一部分

    return 0;
}
 


http://www.ppmy.cn/embedded/114528.html

相关文章

基于Python+SQLite的课程管理系统

系统需求简介 1.1需求分析 实现一个具体的课程管理系统。按照软件工程思路设计简化的专业课数据库&#xff0c;尽量模拟现有专业课程一个学期的选课排课原型实际情况。&#xff08;注&#xff1a;本系统由本人单独设计、开发完成&#xff09; 1.2 数据结构需求分析 课程管理…

线程调优——调整线程池参数提升程序执行效率

先抛出一个问题&#xff0c;程序开发真的是线程越多效率越高吗&#xff1f;多线程是我们程序开发中必不可少的手段&#xff0c;线程就像“孙悟空”开启了分身术一样&#xff0c;每个分身都在“打妖怪”&#xff0c;那是不是分身越多&#xff0c;“打妖怪”的效率就越高&#xf…

安卓13设置动态显示隐藏第一页的某一项 动态显示隐藏无障碍 android13设置动态显示隐藏第一页的某一项

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改4.1修改方法14.2修改方法25.编译6.彩蛋1.前言 有时候,我们的设置里面显示的信息,需要根据不同的情况显示不同的信息,例如,动态的显示或者隐藏 “无障碍” 这一项。 2.问题分析 像这个问题…

【Node.js】semver 语义化版本控制

semver&#xff08;语义化版本控制&#xff09;是一种约定式的版本命名规范&#xff0c;它将版本号分为主版本号、次版本号和修订号&#xff0c;并按照 MAJOR.MINOR.PATCH 的格式进行编号。 1&#xff09;版本号释义&#xff1a; MAJOR&#xff08;主版本号&#xff09;&…

艾丽卡的区块链英语小课堂

系列文章目录 IT每日英语&#xff08;三&#xff09; 文章目录 系列文章目录前言1.principle2.efficient3.implement4.accumulated5,occupation6.phases7.validator8.nominated9.commissions10.significantly 前言 欢迎来到艾丽卡的区块链英语小课堂&#xff0c;在这里&…

力扣(leetcode)每日一题 815 公交路线 (图的宽度优先遍历变种)

815. 公交路线 - 力扣&#xff08;LeetCode&#xff09; 题干 给你一个数组 routes &#xff0c;表示一系列公交线路&#xff0c;其中每个 routes[i] 表示一条公交线路&#xff0c;第 i 辆公交车将会在上面循环行驶。 例如&#xff0c;路线 routes[0] [1, 5, 7] 表示第 0 辆…

96 kHz、24bit 立体声音频ADC芯片GC5358描述

概述&#xff1a; GC5358 是一款高性能、宽采样率、立体声音频模数转换器。其采样率范围是8KHz~96KHz&#xff0c;非常适合从消费级到专业级的音频应用系统。单端模拟输入不需要外围器件。GC5358 音频有两种数据格式&#xff1a;MSB对齐和 I2S 格式&#xff0c;和各种如 DTV、D…

Vue.js 的 Mixins

Vue.js 的 Mixins 是一种非常强大且灵活的功能&#xff0c;它允许你封装可复用的 Vue 组件选项。Mixins 实际上是一种分发 Vue 组件可复用功能的非常灵活的方式。一个 mixin 对象可以包含任意组件选项。当组件使用 mixin 时&#xff0c;所有 mixin 选项将被“混入”该组件本身的…