首页 > 其他分享 >鹏哥C语言39---分支/循环语句练习:猜数字游戏

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

时间:2024-09-16 08:54:57浏览次数:12  
标签:39 int 鹏哥 ret C语言 随机数 printf input sizeof

#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;
}
 

标签:39,int,鹏哥,ret,C语言,随机数,printf,input,sizeof
From: https://blog.csdn.net/most_wanted_/article/details/142298488

相关文章

  • 【C语言】 结构体与位段
    系列文章目录C结构体与位段文章目录系列文章目录前言一、结构体的定义与声明1.结构体的定义2.结构体类型的声明结构的声明结构体变量的创建和初始化3.结构的特殊声明4.结构的自引用二、结构体内存对齐1.对齐规则为什么存在内存对齐?修改默认对齐数三、结构体传参......
  • Python调用C语言动态链接库
    调用方法如果觉得Python性能不够,可以使用C、C++或Rust、Golang为按标准C类型。为Python编写扩展。Python通过自带的ctypes模块,可以加载并调用C标准动态链接库(如.ddl或.so)中的函数。常用的操作为:importctypes#加载动态链接库lib=ctypes.CDLL("./xxx.so")#声明要调......
  • YC339A [ 20240915 CQYC NOIP 模拟赛 T1 ] 演讲(talk)
    题意有\(n\)个地点,你可以:使用\(\frac{a_i}{len}\)的代价标记该地点。使用\(\frac{b_i}{len}\)的代价标记该地点并使得\(len:=len+1\)。跳过该地点。你不需要按照顺序标记,问标记\(m\)个点的最小代价是多少(可以证明答案是实数)。\(n\le500,a_i\leb_i\)。S......
  • CF1039D You Are Given a Tree
    CF1039DYouAreGivenaTree咋其他题解都带根号?根号是坏文明,这里是俩\(\log\)做法,能够跑到\(300\)ms以内。首先考虑暴力贪心,从叶子向根合并,可以取出一条链的时候就取出来,否则就连一条尽可能长的链往上合并。具体的设\(f_{x,i}\)为当\(k=i\)时,在\(x\)处能取出的最......
  • C语言:链表
    链表是一种常见的基础数据结构,它由一系列节点(Node)组成。每个节点包含两部分:数据域(存储数据)和指针域(存储下一个节点的地址)。链表的特点是元素在内存中不一定连续存储,而是通过指针连接起来。以下是链表的一些基本特点:动态性:链表的长度可以动态变化,不需要在创建时指定大小。灵活......
  • C语言:结构体
    一、结构体的概念和定义1.为什么要定义结构体结构体是由用户自己定义(设计)的数据类型。其实就是各种信息的打包。比如说,每个学生都有学号、姓名和成绩,100个学生就有100份这种数据,打包起来整合就会方便很多。2.结构体定义的格式struct[结构体名]{    成员列表}......
  • [Whole Web] Auto check application website's updates
    Inaproductionenvironment,wewanttoprompttheuserwithamessagewhennewscriptsareavailable,askingNewscriptsareavailable.Doyouwanttoupdate?Theideaisstraightforward:periodically(e.g.,everyminute,10seconds,dependsonyourcase......
  • C语言一些简单的细节记录
    一、声明和定义的区别1.声明(Declaration):是告诉编译器有一个变量、函数或类型存在,但不为其分配内存或提供具体的实现。声明提供了有关标识符(如变量名、函数名)的信息,包括类型和名称。它们通常在头文件中出现,以便在多个源文件中共享。例如,以下是变量、函数和类型的声明示例:......
  • c语言写的环形队列
            以下是一个简单的环形队列的实现示例,包括初始化、入队、出队、查询当前元素个数、队列长度和队列元素可视化。        这里使用了静态数组来实现队列的存储,适合于固定大小的队列。#include<stdio.h>#defineMAX_QUEUE_SIZE10 //定义队列的最大......
  • 带你深入了解C语言指针(三)
    目录前言一、字符指针变量字符数组与常量字符串二、数组指针变量1.数组指针变量是什么2.数组指针变量怎么初始化3.数组指针怎么利用?三、二维数组传参四、函数指针变量1.函数指针变量的创建2.函数指针变量的使用3.typedef4.define和typedef的区别五、函数指针数......