初阶c语言(练习题,猜随机数)

前言:

学习c语言,学习来源b站鹏哥,37天吧应该是

内容:

这集内容挺多,源代码放到文章最后

题目是,使用函数编写一个随机数,然后自己猜,猜随机数

这里囊括了很多的知识点,理解起来有点吃力,写起来也很吃力,所以慢慢来,我不会奔溃的

首先利用了do while函数

这个函数的知识点,虽然只有一点点,但是合起来就有点麻烦,因为简单,所以没讲什么,

所以到用的时候,我就发现了一个问题,就是忘记了怎么写了

就是这个逻辑,do后面没有括号,然后就是while后面有括号

注意事项

do  //每次循环都会执行do里面的语句
{
}
while()
{
}

然后函数可以嵌套一个函数,这也是非常常见的,大部分应该都支持嵌套

嵌套一个switch函数,这个是选择语句,输入一个值,看条件是否成立,这也是之前学的,全都用到了

switch("接受一个变量"),这个函数需要接收变量,然后进入循环,看这个变量对应循环的哪个判断语句,都不相等,则进入default,相当于if else的else

接收一个变量,但是输入0的话,才会退出程序,这应该是判断语句的

switch("变量")
{case 1:   //这里的1就对应变量switch括号里接收的值{printf("xxx");   //我记得执行一条语句不需要加大括号,但是这好像是两条,不管了break;           //发现了,老师也没加括号,这个应该不要加大括号}case2:{printf("xxx");break;}default:{printf("xxx");break;}}

运用到了void函数的无返回值,我之前稍微写了一下,对void稍微晓得一点,就是不用在函数里有输入return 0;这些,可以在函数里调用,然后就可以了,相当于一个功能点的样子

接下来编写随机值的函数,就是程序的主要部分

rand()函数,生成随机数的函数,但是这是伪随机数,就是说每次生成随机数的都是固定的,所以要配合时间戳,来实现时间戳的真随机,来实现函数的生成的真随机数

这个需要注意的是,就是头文件,就相当于实现一个功能需要的文件吧

rand函数的随机数的范围是

0~RAND_MAX(32767)

rand函数需要这个头文件

#include <stdlib.h>

void menu()
{printf("***********************\n");printf("********猜数字游戏******\n");printf("********play 1********\n"); printf("********exit 0********\n");
}void game()
{int ret = rand();  //生成一个随机数,用一个变量接收 printf("%d\n", ret);
}

但是这样子不能实现数字的真随机生成,需要配合rand函数的另一个功能

srand(),接受一个整型的变量,就是这里面的数字是随机的,那rand生成的数字就是随机的,很像套娃,对了,就是,但是这里的随机数可以用时间来代替,因为时间是唯一的,也都是整型,就可以实现随机数的生成

这段代码还是有错误的,因为我就是他随机值还是固定的,就是说有一个时间戳没有搞好

void game()
{//1、生成随机数//0~99  --> 1~ 100int ret = rand()%100 +1;while(1){printf("请输入数字:>");scanf("%d", &guess);if (guess < ret){printf("太小了\n"); }else if(guess > ret){printf("太大了\n");}else{printf("恭喜你猜对了\n");}} }

 不知道这个为啥会输入在主函数里面

srand((unsigned int)time(NULL));

然后我试了一下放到game的函数里面,如果我刷新过快的,他的两个随机值是相同的情况

和老师讲的情况是一样的,但是我忘记老师说的为啥了,应该是放主函数更新速度快一点?

这个应该就是调用时间戳来实现,真正的随机数生成,应该就是rand函数的功能里的

 

实现代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//电脑产生一个随机数(1-100)
//猜数字
//猜大了
//猜小了void menu()
{printf("***********************\n");printf("********猜数字游戏******\n");printf("********play 1********\n"); printf("********exit 0********\n");
}void game()
{int guess = 0; //1、生成随机数//0~99  --> 1~ 100int ret = rand()%100 +1;while(1){printf("请输入数字:>");scanf("%d", &guess);if (guess < ret){printf("太小了\n"); }else if(guess > ret){printf("太大了\n");}else{printf("恭喜你猜对了\n");break;}} }	int main()
{int input = 0;srand((unsigned int)time(NULL));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;} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/17784.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

w206基于Spring Boot的农商对接系统的设计与实现

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…

Python PyCharm DeepSeek接入

Python PyCharm DeepSeek接入 创建API key 首先进入DeepSeek官网,https://www.deepseek.com/ 点击左侧“API Keys”,创建API key,输出名称为“AI” 点击“创建",将API key保存,复制在其它地方。 在PyCharm中下载Continue插件 安装 下载中 下载完成后,点击OK 配…

鸿蒙开发:了解@Builder装饰器

前言 本文代码案例基于Api13&#xff0c;温馨提示&#xff1a;内容相对来说比较简单&#xff0c;如果您已掌握&#xff0c;略过即可。 如果说一个页面中组件有很多&#xff0c;我们都统一写到build函数中&#xff0c;显而易见&#xff0c;会导致build函数代码非常冗余&#xff…

一文深入了解DeepSeek-R1:模型架构

本文深入探讨了 DeepSeek-R1 模型架构。让我们从输入到输出追踪 DeepSeek-R1 模型&#xff0c;以找到架构中的新发展和关键部分。DeepSeek-R1 基于 DeepSeek-V3-Base 模型架构。本文旨在涵盖其设计的所有重要方面。 &#x1f4dd; 1. 输入上下文长度 DeepSeek-R1的输入上下文长…

Linux进程管理

一、进程查看 1、进程 进程 process 计算机执行任务的最小单位 2、进程查看 ps auxa&#xff1a;all u&#xff1a;user x&#xff1a;所有终端 所有用户所有终端的所有进程 COMMAND&#xff1a; 进程名称 USER&#xff1a; 启动进程的用户&…

(5/100)每日小游戏平台系列

新增一个数字迷宫游戏&#xff01; 数字迷宫游戏是一款基于迷宫探索的益智游戏。玩家从迷宫的起点出发&#xff0c;必须根据迷宫中的数字指示&#xff0c;选择正确的方向&#xff0c;通过迷宫最终到达终点。游戏的目标是尽快找到并到达终点。 游戏规则 起点与终点&#xff1a;…

latex二重闭合积分显示

latex二重闭合积分显示 环境 texlive2024texstdio4.8.6 解决 添加宏包 \usepackage{esint} % 在导言区加载宏包符号 \oiint测试 documentclass[12pt]{article} \usepackage{esint} % 在导言区加载宏包 \title{Hello} \author{Houor}\begin{document}\maketitleHello, \L…

WebP2P+自研回音消除:视频通话SDK嵌入式EasyRTC构建高交互性音视频应用

随着移动互联网时代的到来&#xff0c;手机端的扬声器大多采用外置设计&#xff0c;且音量较大。在这种情况下&#xff0c;扬声器播放的声音更容易被麦克风捕捉&#xff0c;从而导致回声问题显著加剧。这种设计虽然方便用户在免提模式下使用&#xff0c;但也带来了更复杂的音频…

二分查找sql时间盲注,布尔盲注

目录 一&#xff1a;基础知识引导 数据库&#xff1a;information_schema里面记录着数据库的所有元信息 二&#xff0c;布尔盲注&#xff0c;时间盲注 &#xff08;1&#xff09;布尔盲注案例&#xff08;以sqli-labs第八关为例&#xff09;&#xff1a; &#xff08;2&am…

机器学习 - 理论和定理

在机器学习中&#xff0c;有一些非常有名的理论或定理&#xff0c;对理解机器学习的内在特性非常有帮助。本文列出机器学习中常用的理论和定理&#xff0c;并举出对应的举例子加以深化理解&#xff0c;有些理论比较抽象&#xff0c;我们可以先记录下来&#xff0c;慢慢啃&#…

Linux Mem -- ARM8.5-A Memory Tagging Extension

目录 1 介绍 2 威胁模型 3 MTE的内存安全 4 架构细节 5 在ARMv8-A架构&#xff0c;MTE添加了如下指令&#xff0c;可根据策略分为三种&#xff1a; 6 大量部署MTE 7 MTE的硬件层部署 8 MTE的软件层部署 8.1 Heap Tagging 8.2 Stack Tagging 9 MTE优化 近期在深入了解A…

深入剖析推理模型:从DeepSeek R1看LLM推理能力构建与优化

著名 AI 研究者和博主 Sebastian Raschka 又更新博客了。原文地址&#xff1a;https://sebastianraschka.com/blog/2025/understanding-reasoning-llms.html。这一次&#xff0c;他将立足于 DeepSeek 技术报告&#xff0c;介绍用于构建推理模型的四种主要方法&#xff0c;也就是…

如何保持 mysql 和 redis 中数据的一致性?PegaDB 给出答案

MySQL 与 Redis 数据保持一致性是一个常见且复杂的问题&#xff0c;一般来说需要结合多种策略来平衡性能与一致性。 传统的解决策略是先读缓存&#xff0c;未命中则读数据库并回填缓存&#xff0c;但方式这种维护成本较高。 随着云数据库技术的发展&#xff0c;目前国内云厂商…

Vue 入门到实战 十

第10章 Vue Router​​​​​​​ 目录 10.1 什么是路由 10.2 Vue Router的安装 10.2.1 本地独立版本方法 10.2.2 CDN方法 10.2.3 NPM方法 10.2.4 命令行工具&#xff08;Vue CLI&#xff09;方法 10.3 Vue Router的基本用法 10.3.1 跳转与传参 10.3.2 配置路由 10.…

Java并发中的CAS机制:原理、应用与挑战(通俗易懂版)

上一期文章内容&#xff1a;Java并发中的乐观锁与悲观锁&#xff0c; 本期文章我们来讲一下Java并发中的CAS机制 一、从银行账户案例理解CAS CAS 是一种乐观锁机制&#xff0c;用于在不使用锁的情况下实现多线程对共享资源的并发访问。 它包含三个操作数&#xff1a;内存位置&a…

SpringBoot自动配置-以Mybatis配置为例

SpringBoot自动配置 无基础的直接看链接内容&#xff0c;有基础就直接顺着往下看就可以 Spring底层&#xff08;自动配置&#xff09; 自动配置就是EnableXXX封装Improt&#xff08;ImportSelector的实现类&#xff09;对应方法selectImoprt返回字符串数组为类名会注册为bean…

2025 docker可视化管理面板DPanel的安装

1.什么是 DPanel &#xff1f; DPanel 是一款 Docker 可视化管理面板&#xff0c;旨在简化 Docker 容器、镜像和文件的管理。它提供了一系列功能&#xff0c;使用户能够更轻松地管理和部署 Docker 环境。 软件特点&#xff1a; 可视化管理&#xff1a;提供直观的用户界面&#…

DeepSeek从入门到精通(清华大学)

​ DeepSeek是一款融合自然语言处理与深度学习技术的全能型AI助手&#xff0c;具备知识问答、数据分析、编程辅助、创意生成等多项核心能力。作为多模态智能系统&#xff0c;它不仅支持文本交互&#xff0c;还可处理文件、图像、代码等多种格式输入&#xff0c;其知识库更新至2…

Word 里面嵌入DeepSeek

目录 一、问题描述 二、解决方法 三、代码 四、注意事项 五、总结 一、问题描述 如何在Word里面嵌入DeepSeek? 二、解决方法 1、新建文档&#xff0c;按 AltF11&#xff0c;进入VB界面。 2、选中文档&#xff0c;右键->插入->模块。 3、进入模块&#xff0c;粘入…

java面试题-集合篇

Collection 1.Collection有哪些类&#xff1f; Java集合框架中的Collection接口是所有集合类的基础接口&#xff0c;定义了一些基本的集合操作&#xff0c;如添加元素、删除元素、判断是否包含某个元素等。常见的集合类包括List、Set和Queue。 List List接口定义了按照索引…