本章分支结构的学习内容如下:
三、C语言中的分支与循环—switch语句(4)分支结构 完
本章循环结构的学习内容如下:
三、C语言中的分支与循环—break和continue语句(8)循环结构 完??
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)。
rand()
函数的基本语法很简单,它不需要任何参数,并返回一个伪随机数。
int randomNumber = rand();
?
rand()
函数生成特定范围的随机数通常,你可能需要生成一个特定范围内的随机数,比如 0 到 99。这可以通过取模操作符(%
)来实现:
int randomNumber = rand() % 100; // 生成一个 0 到 99 之间的随机数
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;
}
rand()
生成的是伪随机数,适合大多数基本需求,但不应用于安全相关或对随机性要求很高的场景。srand()
设置随机种子,每次程序运行时 rand()
函数生成的随机数序列都是相同的。srand()
只需调用一次即可。频繁调用可能会导致随机性降低。游戏要求: 1. 电脑自动生成1~100的随机数 2. 玩家猜数字,猜数字的过程中,根据猜测数据的大小给出大了或小了的反馈,直到猜对,游戏结束
这个游戏将由以下部分组成:
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;
}