当前位置: 首页 > news >正文

初阶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语言(练习题,猜随机数,关机程序)

目录 第一题&#xff0c;使用函数编写一个随机数&#xff0c;然后自己猜&#xff0c;猜随机数 第二道题&#xff08;关机程序&#xff09; 实现代码&#xff08;关机程序&#xff09; 实现代码&#xff08;猜数字&#xff09; 前言&#xff1a; 学习c语言&#xff0c;学习…...

三维重建(十二)——3D先验的使用

文章目录 零、最近感受和前言一、使用能够快速得到重建初始化的方法1.1 Colmap(多视角)1.2 深度估计(单视角)二、已知形状模板2.1 人脸2.2 人体2.3 动物三、刚性与非刚性约束(变形约束)3.1 刚性变形3.2 非刚性变形四、统计(深度学习)先验——从大量(3D)数据中提取信息…...

DDoS技术解析

这里是Themberfue 今天我们不聊别的&#xff0c;我们聊聊著名的网络攻击手段之一的 DDoS&#xff0c;看看其背后的技术细节。 DoS 了解 DDoS 前&#xff0c;先来讲讲 DoS 是什么&#xff0c;此 DoS 而不是 DOS 操作系统啊。1996年9月6日&#xff0c;世界第三古老的网络服务提供…...

总结:如何在SpringBoot中使用https协议以及自签证书?

总结&#xff1a;如何在SpringBoot中使用https协议以及自签证书&#xff1f; 前提一&#xff1a;什么是http协议&#xff1f;前提二&#xff1a;什么是https协议&#xff1f;一生成自签证书二 将证书转换为PKCS12格式三 配置SpringBoot&#xff08;1&#xff09;修改配置文件&a…...

Django开发入门 – 4.创建Django app

Django开发入门 – 4.创建Django app Create A Django App Under An Existing Project By JacksonML 1. 什么是Django app? Django项目面向Web应用程序&#xff0c;它会由一个或多个子模块组成&#xff0c;这些子模块称为apps。 Django apps负责执行完整Web应用程序中涉及…...

安装WPS后,导致python调用Excel.Application异常,解决办法

在使用xlwings编辑excel文件时&#xff0c;默认调用的是“Excel.Application”&#xff0c;如果安装过wps&#xff0c;会导致该注册表为WPS&#xff0c;会导致xlwings执行异常 因为安装过WPS&#xff0c;导致与Excel不兼容的问题&#xff0c;想必大家都听说过。有些问题及时删…...

语言大模型基础概念 一(先了解听说过的名词都是什么)

SFT&#xff08;监督微调&#xff09;和RLHF&#xff08;基于人类反馈的强化学习&#xff09;的区别 STF&#xff08;Supervised Fine-Tuning&#xff09;和RLHF&#xff08;Reinforcement Learning from Human Feedback&#xff09;是两种不同的模型训练方法&#xff0c;分别…...

理解 WebGPU 的入口: navigator.gpu

在现代 Web 开发中&#xff0c;WebGPU 已经成为实现高性能图形渲染和计算的强大工具。作为 WebGPU API 的入口点&#xff0c; navigator.gpu 是开发者与 GPU 交互的起点。本文将详细介绍 navigator.gpu 的属性和方法&#xff0c;以及如何通过它初始化 WebGPU 环境。 什…...

Django 创建第一个项目

Django 创建第一个项目 引言 Django 是一个高级的 Python Web 框架,它鼓励快速开发和干净、实用的设计。本指南将带您从头开始创建一个简单的 Django 项目,以便您能够熟悉 Django 的基本结构和概念。 准备工作 在开始之前,请确保您已经安装了 Python 和 Django。以下是安…...

ChatGPT vs DeepSeek详细对比

&#x1f4a1; AI模型发展背景 OpenAI的GPT系列需要数据参数算力&#xff0c;这些要素共同推动了模型的成长。但是&#xff0c;到了GPT-5时代&#xff0c;人类现有的知识精华几乎被学习殆尽&#xff0c;模型的提升空间变得有限。于是OpenAI团队另辟蹊径&#xff0c;尝试模拟人…...

日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(6):動詞ない形について句型

日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(6):動詞ない形について句型 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)~動詞な形 +なければなりません(2)~動詞な形  + なくてもいいです(3)に まで までに :区別3、单词(1)日语单词…...

我的docker随笔46:在x86平台构建龙芯镜像

本文介绍在x86服务器上构建龙芯平台的docker镜像。 前言 去年11月&#xff0c;在龙芯机器上安装了docker工具&#xff0c;并开始尝试研究如何构建龙芯的文件系统。断断续续搞了2个月后&#xff0c;有点结果出来了。前面有文章介绍了如何用debootstrap构建龙芯编译运行环境&…...

移动端测试的挑战与解决方案:兼容性、网络问题及实战策略

引言 移动应用已成为用户触达服务的核心入口,但移动端测试面临设备多样性、网络波动、用户场景复杂等多重挑战。据Statista统计,2023年全球活跃移动设备超180亿台,操作系统(Android/iOS)版本碎片化率超30%,这对测试工程师提出了极高要求。本文深度解析移动端测试的核心痛…...

STM32 I2C通信协议说明

目录 背景 I2C协议 数据的有效性 I2C通信开始和停止条件 I2C数据传输 发送 响应 正常情况&#xff1a; 异常情况&#xff1a; 主机结束接收 写寄存器的标准流程 读寄存器的标准流程 仲裁机制 时钟同步 SDA线的仲裁 程序 背景 对单片机的三大通信中的I2C通信进…...

DeepSeek v3 技术报告阅读笔记

注 本文参考 DeepSeek-v3 / v2 / v1 Technical Report 及相关参考模型论文本文不包括基础的知识点讲解&#xff0c;为笔记/大纲性质而非教程&#xff0c;建议阅读技术报告原文交流可发送至邮箱 henryhua0721foxmail.com 架构核心 核心&#xff1a; MLA 高效推理DeepSeekMOE 更…...

HCIA项目实践(网络)---NAT地址转化技术

十三 NAT网络地址转换技术 13.1 什么是NAT NAT&#xff08;Network Address Translation&#xff09;地址转换技术&#xff0c;是一种将内部网络的私有 IP 地址转换为外部网络的公有 IP 地址的技术。其主要作用是实现多个内部网络设备通过一个公有 IP 地址访问外部网络&#x…...

VS studio报错cmake version 3.29.5-msvc4,但是没有其他信息问题解决

背景&#xff1a; windows电脑用VS studio 2022打开一个cmake项目&#xff0c;编译cmake通过&#xff0c;但是没有产生exe文件&#xff0c;IDE也没有打印其他错误信息提示&#xff0c;只有下图&#xff1a; cmake version 3.29.5-msvc4 一开始以为是编译器等问题&#xff0c;…...

免费deepseek的API获取教程及将API接入word或WPS中

免费deepseek的API获取教程: 1 https://cloud.siliconflow.cn/中注册时填写邀请码&#xff1a;GAejkK6X即可获取2000 万 Tokens; 2 按照图中步骤进行操作 将API接入word或WPS中 1 打开一个word&#xff0c;文件-选项-自定义功能区-勾选开发工具-左侧的信任中心-信任中心设置…...

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 商户号池分配设计&#xff1a;高并发与内存管理 背景 在分布式交易系统中&#xff0c;商户号池管理是核心模块之一。传统的商户号生成方式&#xff0c;依赖数据库预分配号段&#xff0c;导致大量号段浪费&#xff0c;并且在高并发请求下&#xff0c;性能难以满足需…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

从面试角度回答Android中ContentProvider启动原理

Android中ContentProvider原理的面试角度解析&#xff0c;分为​​已启动​​和​​未启动​​两种场景&#xff1a; 一、ContentProvider已启动的情况 1. ​​核心流程​​ ​​触发条件​​&#xff1a;当其他组件&#xff08;如Activity、Service&#xff09;通过ContentR…...

五子棋测试用例

一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏&#xff0c;有着深厚的文化底蕴。通过将五子棋制作成网页游戏&#xff0c;可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家&#xff0c;都可以通过网页五子棋感受到东方棋类…...

Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合

无论是python&#xff0c;或者java 的大型项目中&#xff0c;都会涉及到 自身平台微服务之间的相互调用&#xff0c;以及和第三发平台的 接口对接&#xff0c;那在python 中是怎么实现的呢&#xff1f; 在 Python Web 开发中&#xff0c;FastAPI 和 Django 是两个重要但定位不…...