三、C语言分支与循环知识点补充——随机数生成
本章分支结构的学习内容如下:
三、C语言中的分支与循环—switch语句(4)分支结构 完
本章循环结构的学习内容如下:
三、C语言中的分支与循环—break和continue语句(8)循环结构 完??
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到100之间的随机数。
- 用户输入:允许用户输入一个猜测的数字。
- 比较和反馈:程序将用户的猜测与随机数进行比较,并根据猜测的数字是大了还是小了给出反馈。
- 重复猜测:直到用户猜对数字,游戏结束。
解题步骤:
- 引入必要的头文件:
stdio.h
用于输入输出,stdlib.h
和time.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; }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!