c语言生成随机数

生成随机数

rand()函数在stdlib.h的头文件中。
rand() 会随机生成一个位于 0 ~ RAND_MAX 之间的整数。RAND_MAX 是 <stdlib.h> 头文件中的一个宏,它用来指明 rand() 所能返回的随机数的最大值。C语言标准并没有规定 RAND_MAX 的具体数值,只是规定它的值至少为 32767。所以在实际编程中,我们也不需要知道 RAND_MAX 的具体值,把它当做一个很大的数来对待即可。

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a=rand();
	printf("%d\n",a);
	return 0;
 } 

结果运行:41
这种方法每次输出的随机数都是一样的。

每次输出的随机数都不同

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
    int a;
    srand((unsigned)time(NULL));
    a = rand();
    printf("%d\n", a);
    return 0;
}

多次运行后输出的结果不同,并且有逐渐变大,逐渐变小的趋势

生成一定范围内的随机数

规定0-9之内的数字

int a = rand() % 10;    //产生0~9的随机数,注意10会被整除,不包括10

规定12-36(包括36)

int a = rand() %25+12;

则可以看作是从(0–25)+12,表示12–37(包括36)
则rand()%26 表示0–25 rand()%26+12 表示12-36

猜字游戏

题目要求:
电脑应随机产生一个数字(为便于玩家猜测,所以选择1~100)
玩家输入所猜数字,电脑给予反馈。
玩家得知反馈后进行进一步操作。(如:所猜数字过大,所猜数字过小,所猜数字正确(是否重玩一局)———>暂时没有写出)
每次执行程序获取到的随机数应不相同
创建一个结构体, 包含名字和密码两个字段, 提前准备一个实体(设置它的名字为admin, 密码为123), 玩游戏前需验证名字和密码(可选做)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
struct game{
	char name;
	int mima;
}game;
void hanshu(int num)
{
	int a=rand()%101;
	while(1)
	{
		printf("请输入数字:\n");
		scanf("%d",&num);
		if(num>a)
			printf("猜大了\n");
		else if(num<a)
			printf("猜小了\n");
		else
		{
			printf("恭喜猜对了"); 
			break; 
		 } 
	}
}
int main()
{
	printf("请输入姓名:\n");
	scanf("%c",&game.name);
	printf("请输入密码:\n"); 
	scanf("%d",&game.mima);
	if(game.name =='a' && game.mima==1)
	{
		int n;
		srand((unsigned int)time(NULL));
		hanshu(n);
	}
	else
	{
		printf("输错了"); 
	}
}

  • 23
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值