三、C语言分支与循环知识点补充——随机数生成

本章分支结构的学习内容如下:

三、C语言中的分支与循环—if语句 (1)

三、C语言中的分支与循环—关系操作符 (2)

三、C语言中的分支与循环—条件操作符 与逻辑操作符(3)

三、C语言中的分支与循环—switch语句(4)分支结构 完


本章循环结构的学习内容如下:

三、C语言中的分支与循环—while循环 (5)

三、C语言中的分支与循环—for循环 (6)

三、C语言中的分支与循环—do-while循环 (7)

三、C语言中的分支与循环—break和continue语句(8)循环结构 完  

三、C语言中的分支与循环—循环嵌套 (9) 

三、C语言中的分支与循环—goto语句 (10) (完) 


1.rand() 函数

rand() 函数在 C 语言中用于生成伪随机数。这个函数定义在 <stdlib.h> 头文件中,每次调用时会返回一个 0 到 RAND_MAX 之间的整数,其中 RAND_MAX 也定义在 <stdlib.h> 中,通常是一个相对较大的数(在多数系统上是 32767)。

rand() 函数在 C 语言中用于生成伪随机数。这个函数定义在 <stdlib.h> 头文件中,每次调用时会返回一个 0 到 RAND_MAX 之间的整数,其中 RAND_MAX 也定义在 <stdlib.h> 中,通常是一个相对较大的数(在多数系统上是 32767)。

1)基础语法

rand() 函数的基本语法很简单,它不需要任何参数,并返回一个伪随机数。

int randomNumber = rand();

 

2)使用 rand() 函数生成特定范围的随机数

通常,你可能需要生成一个特定范围内的随机数,比如 0 到 99。这可以通过取模操作符(%)来实现:

int randomNumber = rand() % 100; // 生成一个 0 到 99 之间的随机数

2.随机数种子 — srand()

rand() 生成的是伪随机数,这意味着如果你不设置随机种子,那么每次程序运行时生成的随机数序列都是相同的。为了每次都生成不同的随机数序列,我们使用 srand() 函数来设置随机数种子。

void srand(unsigned int seed);

通常,将当前时间作为种子:

#include <stdlib.h>
#include <time.h>

srand((unsigned) time(NULL));

示例代码

下面是一个使用 rand()srand() 函数的完整示例,程序中生成了 0 到 99 范围内的 5 个随机数。

这个程序首先包含了 <stdlib.h><time.h> 头文件,这些是使用 rand()srand() 所必需的。在 main 函数中,首先调用 srand() 设置随机数种子,然后循环五次生成并打印随机数。

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

int main() {
    // 设置随机数种子
    srand((unsigned) time(NULL));

    // 打印 5 个随机数
    for (int i = 0; i < 5; i++) {
        int randomNumber = rand() % 100;
        printf("%d ", randomNumber);
    }

    return 0;
}

3.注意事项

  • rand() 生成的是伪随机数,适合大多数基本需求,但不应用于安全相关或对随机性要求很高的场景。
  • 如果不调用 srand() 设置随机种子,每次程序运行时 rand() 函数生成的随机数序列都是相同的。
  • 在一个程序中,srand() 只需调用一次即可。频繁调用可能会导致随机性降低。

4.代码练习

游戏要求: 1. 电脑自动生成1~100的随机数 2. 玩家猜数字,猜数字的过程中,根据猜测数据的大小给出大了或小了的反馈,直到猜对,游戏结束

这个游戏将由以下部分组成:

  1. 生成随机数:电脑生成一个1到100之间的随机数。
  2. 用户输入:允许用户输入一个猜测的数字。
  3. 比较和反馈:程序将用户的猜测与随机数进行比较,并根据猜测的数字是大了还是小了给出反馈。
  4. 重复猜测:直到用户猜对数字,游戏结束。

    解题步骤:

  • 引入必要的头文件stdio.h 用于输入输出,stdlib.htime.h 用于生成随机数。
  • 初始化随机数生成器:使用 srand(time(NULL))
  • 生成随机数:使用 rand() % 100 + 1 生成1到100之间的随机数。
  • 循环等待用户输入:使用 do-while 循环。
  • 读取用户输入:使用 scanf 读取用户的猜测。
  • 比较和反馈:使用 if-else 语句判断用户输入与随机数的大小关系,并给出相应的提示。
  • 猜中数字后结束游戏:当用户猜中数字时,退出循环,并恭喜用户。
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main() {
        int randomNumber, guess;
        // 初始化随机数生成器
        srand(time(NULL));
        // 生成1到100之间的随机数
        randomNumber = rand() % 100 + 1;
    
        printf("猜数字游戏开始!我已经选择了一个1到100之间的数字。\n");
    
        do {
            printf("请输入你的猜测:");
            scanf("%d", &guess);
            if (guess > randomNumber) {
                printf("太大了!再试试看。\n");
            } else if (guess < randomNumber) {
                printf("太小了!再试试看。\n");
            }
        } while (guess != randomNumber);
    
        printf("恭喜你,猜对了!数字就是 %d。\n", randomNumber);
    
        return 0;
    }
    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

直播预告丨看零售场,如何玩转 MaaS

今年&#xff0c;有一个被频繁提及的词是MaaS 这类工具正在帮助千行百业实现大模型落地产业 在零售场&#xff0c;特别是像京东这样拥有超高并发、超复杂协同的电商场内 也沉淀出了一套通用的AI基础设施——九数算法中台 从提升客户服务体验、平台效率出发&#xff0c;训练各…

AtCoder ABC194

这期比193稍微简单一点 C - Squared Error 手玩一下&#xff1a; N 3 N3 N3时 展开得 a 2 b 2 − 2 a b b 2 − c 2 − 2 b c a 2 c 2 − 2 a c a^2b^2-2abb^2-c^2-2bca^2c^2-2ac a2b2−2abb2−c2−2bca2c2−2ac 每个数平方项都要计算 n − 1 n-1 n−1次 减的那一份可…

MYSQL篇--事务机制高频面试题

事务 1 什么是数据库事务&#xff1f; 事务是一个不可分割的数据库操作序列&#xff0c;也是数据库并发控制的基本单位&#xff0c;其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务是逻辑上的一组操作&#xff0c;要么都执行&#xff0c;要么都不执行。…

图纸版本管理混乱怎么办?彩虹PDM系统帮你搞定!

在现代制造业和工程领域&#xff0c;图纸版本管理的混乱常常是一个棘手的问题。不同版本的图纸可能导致严重的错误和生产问题&#xff0c;影响了产品质量和交付时间。然而&#xff0c;有一个强大的工具可以帮助企业解决这个问题&#xff0c;那就是PDM产品数据管理系统。彩虹PDM…

云流量回溯的工作原理及关键功能

云计算和网络技术的快速发展为企业提供了更灵活、高效的业务运营环境&#xff0c;同时也引发了一系列网络安全挑战。在这个背景下&#xff0c;云流量回溯成为网络安全领域的一个关键技术&#xff0c;为企业提供了对网络活动的深入洞察和实时响应的能力。 一、 云流量回溯的基本…

pkuseg按照用户自定义词典分词错误修正

import pkusegc pkuseg.pkuseg(user_dict"./data/dict.txt") sentence 数字传播实验班 print(c.cut(sentence))字典中包含“”数字传媒与人文学院"&#xff0c;添加自定义词典后&#xff0c;文本被错误分成““数字传 播 实验班” &#xff0c;debug发现solve…

OpenShift 4 - 在 OpenShift 上运行物体检测 AI 应用

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.14 RHODS 2.5.0 的环境中验证 说明&#xff1a;请先根据《OpenShift 4 - 部署 OpenShift AI 环境&#xff0c;运行 AI/ML 应用&#xff08;视频&#xff09;》一文完成 OpenShift AI 环境…

python爬虫实战(8)--获取虎pu热榜

1. 需要的类库 import requests from bs4 import BeautifulSoup import pandas as pd2. 请求地址 def fetch_data():url "https://bbs.xxx.com/" # Replace with the actual base URLresponse requests.get(url)if response.status_code 200:return response.c…

2024年最火爆的本地生活服务商平台推荐!

随着互联网的发展&#xff0c;本地生活团购服务市场逐渐成为各大平台争夺的焦点。视频号、DY等短视频平台纷纷入局&#xff0c;希望通过本地生活团购的形式吸引更多的用户&#xff0c;提高平台的活跃度和黏性。对于想要成为本地生活团购服务商的创业者来说&#xff0c;都不想放…

web期末作业网页设计——JavaScript

目录 一.作品简介 二.网页效果 首页 花语 登录界面 注册界面 三.网页代码 首页 登录界面 注册界面 视频界面 一.作品简介 网站系统文件种类包含&#xff1a;html网页结构文件、css网页样式文件、js网页特效文件、images网页图片文件。 网页作品代码简单&#xff…

2024 年 10 款最佳 Android 手机数据恢复软件榜单

当您因某些不合时宜的事故而丢失 Android 设备上的重要数据时&#xff0c;这真是一场灾难。如果您遇到这样的情况&#xff0c;请不要担心。我们列出了一些最好的 Android 数据恢复软件&#xff0c;可以帮助您使用 PC 检索手机丢失的数据。 在用于存储重要数据的各种存储设备中…

你真的掌握了“C语言分支循环”吗

目录 前言 1. if语句 1.1 if 1.2 else 1.3 分支中包含多条语句 1.4 嵌套if 1.5 悬空else问题 2. 关系操作符 3. 条件操作符 4. 逻辑操作符&#xff1a;&& , || , &#xff01; 4.1 逻辑取反运算符 4.2 与运算符 4.3 或运算符 4.4 练习&#xff1a;闰年的判…

【一周年创作总结】人生是远方的无尽旷野呀

那一眼瞥见的伟大的灵魂&#xff0c;却似模糊的你和我 文章目录 &#x1f4d2;各个阶段的experience&#x1f50e;大一寒假&#x1f50e;大一下学期&#x1f50e;大一暑假&#x1f50e;大二上学期&#xff08;现在&#xff09; &#x1f354;相遇CSDN&#x1f6f8;自媒体&#…

uniapp使用wxml-to-canvas开发小程序保存canvas图片

微信小程序官方解决方案&#xff1a;wxml-to-canvas 使用wxml-to-canvas要知道一些前提条件 1、只能画view&#xff0c;text&#xff0c;image 2、每个元素必须要设置宽高 3、默认是flex布局&#xff0c;可以通过flexDirection: "column"来改变排列方式 4、文字 必…

云服务器搭建GitLab

经验总结&#xff1a; 1、配置需求&#xff1a;云服务器内存最低4G 2、内存4G的云服务器&#xff0c;在运行容器后&#xff0c;会遇到云服务器操作卡顿问题&#xff0c;这里有解决方案 转载&#xff1a;服务器搭建Gitlab卡顿解决办法-CSDN博客 3、云服务器的操作系统会影响…

ROS建图之ROS标准REP-105(官方搬运翻译+个人理解)

REP-105 是一个由 Wim Meeussen 于 2010年10月27日 创建并维护的&#xff0c;名为 "Coordinate Frames for Mobile Platforms"&#xff08;移动平台的坐标系框架&#xff09;的 ROS Enhancement Proposal&#xff08;REP&#xff09;。ROS官方教程&#xff1a;REP 10…

Page 251~254 Win32 GUI项目

win32_gui 源代码&#xff1a; #if defined(UNICODE) && !defined(_UNICODE)#define _UNICODE #elif defined(_UNICODE) && !defined(UNICODE)#define UNICODE #endif#include <tchar.h> #include <windows.h>/* Declare Windows procedure */…

【Vue2】一个数组按时间分割为【今年】和【往年】俩个数组

一. 需求 后端返回一个数组&#xff0c;前端按时间维度将该数组的分割为【今年】和【往年】俩个数组后端返回的数组格式如下 timeList:[{id:1,billTime:"2024-01-10",createTime:"2024-01-10 00:00:00",status:0},{id:2,billTime:"2022-05-25"…

EVE-NG初次启动及WEB客户端访问来了

本章从虚拟机Eve模拟器启动、模拟器的启动配置、浏览器访问三个步骤讲解EVE-NG的首次启动。 1.启动模拟器 打开虚拟机环境&#xff0c;启动安装好的EVE-NG虚拟机&#xff0c;进入如下界面。 登录时输入社区版默认账户是root&#xff0c;密码是eve&#xff0c;完成登陆。 1.配置…

00后网文作家年入百万,跻身“十二天王”之列!

各位书友们&#xff0c;有没有觉得现在网文界越来越风起云涌&#xff1f;最近&#xff0c;2023年网络文学榜样作家“十二天王”出炉&#xff0c;其中一位00后作家季越人引起了广泛关注&#xff01;这位公共管理系的大四学生凭借他的第一部网文小说《玄鉴仙族》一鸣惊人&#xf…
最新文章