C语言随机数的生成相关案例

随机数的方式:

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;
}

 

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值