初阶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函数的功能里的
第二道题(关机程序)
主要是利用那个system的函数,可以调用系统的命令,但是我输不了中文,好难受
我的处理办法是,在打开一个cmd窗口,输入shutdown -a取消关机
需要这三个头文件
#include <stdio.h>
#include <stdlib.h> //这个好像是system需要用的
#include <string.h> //这个是strcmp需要用的,就是比较两个字符串是否相等
但是运行完程序输入不了中文,还好我打开了cmd命令行,直接输入了shutdown -a结束了所有的关机程序,算了,不管了
但是这主要是goto语句的使用,但是一般goto语句是用的,用其他的方法也是可以替代goto语句,但是在某些情况用goto语句比较好,
比如深层次的循环,用goto可以一下就跳出循环了,提高效率
实现代码(关机程序)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//关机程序
//1、电脑运行起来,1分中内关机
//2、如果输入:我是猪,就取消关机int main()
{char input[20] = {};system("shutdown -s -t 60");again:printf("请注意,你的电脑在60秒内关机,如果输入:我是猪,就取消关机\n");scanf("%s", input);while(1){if(strcmp(input,"我是猪") == 0){printf("正在取消关机");system("shutdown -a");break; }else{goto again;//printf("你是笨蛋,正在关机,还有三次机会");//break;} }
实现代码(猜数字)
#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;} 相关文章:
初阶c语言(练习题,猜随机数,关机程序)
目录 第一题,使用函数编写一个随机数,然后自己猜,猜随机数 第二道题(关机程序) 实现代码(关机程序) 实现代码(猜数字) 前言: 学习c语言,学习…...
三维重建(十二)——3D先验的使用
文章目录 零、最近感受和前言一、使用能够快速得到重建初始化的方法1.1 Colmap(多视角)1.2 深度估计(单视角)二、已知形状模板2.1 人脸2.2 人体2.3 动物三、刚性与非刚性约束(变形约束)3.1 刚性变形3.2 非刚性变形四、统计(深度学习)先验——从大量(3D)数据中提取信息…...
DDoS技术解析
这里是Themberfue 今天我们不聊别的,我们聊聊著名的网络攻击手段之一的 DDoS,看看其背后的技术细节。 DoS 了解 DDoS 前,先来讲讲 DoS 是什么,此 DoS 而不是 DOS 操作系统啊。1996年9月6日,世界第三古老的网络服务提供…...
总结:如何在SpringBoot中使用https协议以及自签证书?
总结:如何在SpringBoot中使用https协议以及自签证书? 前提一:什么是http协议?前提二:什么是https协议?一生成自签证书二 将证书转换为PKCS12格式三 配置SpringBoot(1)修改配置文件&a…...
Django开发入门 – 4.创建Django app
Django开发入门 – 4.创建Django app Create A Django App Under An Existing Project By JacksonML 1. 什么是Django app? Django项目面向Web应用程序,它会由一个或多个子模块组成,这些子模块称为apps。 Django apps负责执行完整Web应用程序中涉及…...
安装WPS后,导致python调用Excel.Application异常,解决办法
在使用xlwings编辑excel文件时,默认调用的是“Excel.Application”,如果安装过wps,会导致该注册表为WPS,会导致xlwings执行异常 因为安装过WPS,导致与Excel不兼容的问题,想必大家都听说过。有些问题及时删…...
语言大模型基础概念 一(先了解听说过的名词都是什么)
SFT(监督微调)和RLHF(基于人类反馈的强化学习)的区别 STF(Supervised Fine-Tuning)和RLHF(Reinforcement Learning from Human Feedback)是两种不同的模型训练方法,分别…...
理解 WebGPU 的入口: navigator.gpu
在现代 Web 开发中,WebGPU 已经成为实现高性能图形渲染和计算的强大工具。作为 WebGPU API 的入口点, navigator.gpu 是开发者与 GPU 交互的起点。本文将详细介绍 navigator.gpu 的属性和方法,以及如何通过它初始化 WebGPU 环境。 什…...
Django 创建第一个项目
Django 创建第一个项目 引言 Django 是一个高级的 Python Web 框架,它鼓励快速开发和干净、实用的设计。本指南将带您从头开始创建一个简单的 Django 项目,以便您能够熟悉 Django 的基本结构和概念。 准备工作 在开始之前,请确保您已经安装了 Python 和 Django。以下是安…...
ChatGPT vs DeepSeek详细对比
💡 AI模型发展背景 OpenAI的GPT系列需要数据参数算力,这些要素共同推动了模型的成长。但是,到了GPT-5时代,人类现有的知识精华几乎被学习殆尽,模型的提升空间变得有限。于是OpenAI团队另辟蹊径,尝试模拟人…...
日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(6):動詞ない形について句型
日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(6):動詞ない形について句型 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)~動詞な形 +なければなりません(2)~動詞な形 + なくてもいいです(3)に まで までに :区別3、单词(1)日语单词…...
我的docker随笔46:在x86平台构建龙芯镜像
本文介绍在x86服务器上构建龙芯平台的docker镜像。 前言 去年11月,在龙芯机器上安装了docker工具,并开始尝试研究如何构建龙芯的文件系统。断断续续搞了2个月后,有点结果出来了。前面有文章介绍了如何用debootstrap构建龙芯编译运行环境&…...
移动端测试的挑战与解决方案:兼容性、网络问题及实战策略
引言 移动应用已成为用户触达服务的核心入口,但移动端测试面临设备多样性、网络波动、用户场景复杂等多重挑战。据Statista统计,2023年全球活跃移动设备超180亿台,操作系统(Android/iOS)版本碎片化率超30%,这对测试工程师提出了极高要求。本文深度解析移动端测试的核心痛…...
STM32 I2C通信协议说明
目录 背景 I2C协议 数据的有效性 I2C通信开始和停止条件 I2C数据传输 发送 响应 正常情况: 异常情况: 主机结束接收 写寄存器的标准流程 读寄存器的标准流程 仲裁机制 时钟同步 SDA线的仲裁 程序 背景 对单片机的三大通信中的I2C通信进…...
DeepSeek v3 技术报告阅读笔记
注 本文参考 DeepSeek-v3 / v2 / v1 Technical Report 及相关参考模型论文本文不包括基础的知识点讲解,为笔记/大纲性质而非教程,建议阅读技术报告原文交流可发送至邮箱 henryhua0721foxmail.com 架构核心 核心: MLA 高效推理DeepSeekMOE 更…...
HCIA项目实践(网络)---NAT地址转化技术
十三 NAT网络地址转换技术 13.1 什么是NAT NAT(Network Address Translation)地址转换技术,是一种将内部网络的私有 IP 地址转换为外部网络的公有 IP 地址的技术。其主要作用是实现多个内部网络设备通过一个公有 IP 地址访问外部网络&#x…...
VS studio报错cmake version 3.29.5-msvc4,但是没有其他信息问题解决
背景: windows电脑用VS studio 2022打开一个cmake项目,编译cmake通过,但是没有产生exe文件,IDE也没有打印其他错误信息提示,只有下图: cmake version 3.29.5-msvc4 一开始以为是编译器等问题,…...
免费deepseek的API获取教程及将API接入word或WPS中
免费deepseek的API获取教程: 1 https://cloud.siliconflow.cn/中注册时填写邀请码:GAejkK6X即可获取2000 万 Tokens; 2 按照图中步骤进行操作 将API接入word或WPS中 1 打开一个word,文件-选项-自定义功能区-勾选开发工具-左侧的信任中心-信任中心设置…...
langchain学习笔记之小样本提示词Few-shot Prompt Template
langchain学习笔记之小样本提示词 引言 Few-shot Prompt Templates \text{Few-shot Prompt Templates} Few-shot Prompt Templates简单介绍示例集创建创建 ExamplePrompt \text{ExamplePrompt} ExamplePrompt与 ExampleSelector \text{ExampleSelector} ExampleSelector创建 Fe…...
【CS.SE】优化 Redis 商户号池分配设计:高并发与内存管理
优化 Redis 商户号池分配设计:高并发与内存管理 背景 在分布式交易系统中,商户号池管理是核心模块之一。传统的商户号生成方式,依赖数据库预分配号段,导致大量号段浪费,并且在高并发请求下,性能难以满足需…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...
