随机数的方式:
1、设置种子:srand(初始值)
2、获取随机数:rand();
引导案例:
通过for循环简单生成10个随机数
#include<stdio.h>
#include<stdlib.h> //添加包含随机数的库函数
int main() {srand(1); //设置种子for (int i = 1; i <= 10; i++) {printf("%d\n", rand()); }
}
上面这个案例虽说是随机生成了10个数但却有两个弊端:
1、种子不变则生成的随机数是固定的
2、随机数的范围无法确定
解决方法如下:
1、种子的值固定不变则,可以将初始值变成时间戳
2、随机数的范围:
假设想要生成的范围为 num1 ----num2
则可以: rand()%((1+num2)-num1)+num1;
案例如下:
1、生成范围为12-87之间的随机数
2、生成范围为17-39之间的随机数且不包括39
#include<stdio.h> #include<stdlib.h> #include<time.h> //时间戳库函数 int main() {srand(time(NULL));for (int i = 1; i <= 10; i++) {printf("%d\n", rand() % (1+89-12) + 12);}printf("---------------\n");for (int i = 1; i <= 10; i++) {printf("%d\n", rand() % (39 - 17) + 17); //因为不包括39所以这里不加1}}
进阶案例:
猜字游戏在范围为1-100中
#include<stdio.h>
#include<stdlib.h>
#include<time.h>//猜字游戏在1-100中去猜
int main() {//先设置种子srand(time(NULL));//生成1-100之间的一个随机数;int num = rand() % 100 + 1;printf("请输入1-100中的一个整数\n");int x; //定义一个变量用于键盘输入一个数while (1) {scanf("%d", &x);if (num < x) {printf("输入的数大了\n");}else if (num > x) {printf("输入的数小了\n");}else if (num == x) {printf("恭喜你猜对了\n");break;}else {printf("输入的数不符合要求请重新输入");}}return 0;
}