C++怎么让a被赋值成一个1-100的随机数
发布网友
发布时间:2022-05-06 16:53
我来回答
共5个回答
热心网友
时间:2023-09-18 08:00
可以借用模除函数来实现。
模除也就是取余,其可以通过%n的方式,把值*于0~n-1的范围内,对于1-100这个需求,可以模除100,将值*在0~99后,再将结果加一即可。
同时,为了使结果更随机,需要设置srand,即随机数种子。一般采用获取当前时间作为种子。
于是代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a;
srand(time(NULL));//设置随机数种子,使每次运行获取到的随机数值不同。
a = rand()%100+1;//获取1-100的随机数。
printf("a = %d\n",a);//输出。
return 0;
}
热心网友
时间:2023-09-18 08:01
a = 1 + rand() % 100;
C++中随机函数rand。
rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。
这样,如果你要产生0~10的10个整数,可以表达为: int N = rand() % 11;
这样,N的值就是一个0~10的随机数,
如果要产生1~10,则是这样: int N = 1 + rand() % 11;
总结来说,可以表示为: a + rand() % n 其中的a是起始值,n是整数的范围。
热心网友
时间:2023-09-18 08:01
a=rand()%100+1;就可以了;
rand函数就是产生一个随机数,你用这个随机数对100取余得到了0-99之间的随机数,加1就是1-100了,这个思想很常用哦
热心网友
时间:2023-09-18 08:02
#include <stdlib.h> /*用到了srand函数,所以要有这个头文件*/
#include <stdio.h>
#include <time.h> /*用到了time函数,所以要有这个头文件*/
void main()
{
int a;
srand((unsigned)time(NULL));
a=rand()%100+1;
printf("%d\n",a);
}追问srand((unsigned)time(NULL)); 这句是什么意思啊??为什么要这句呢?我直接这样int a=int rand();程序报错 syntax error : 'type'。
追答srand((unsigned)time(NULL)); 这句是什么意思啊??为什么要这句呢?
一句标准格式而已,以时间为种子,在产生随机数的函数中最好这么写,这样可以使得取得随机数更有代表性,否则取出来的数可能是服从正态分布的!
我直接这样int a=int rand();程序报错 syntax error : 'type'。
这肯定不行,你应该这么写:
void main()
{
int a=rand();
printf("%d\n",a);
}
热心网友
时间:2023-09-18 08:03
int x,a;//定义2个整型变量
srand(time(0));//以时间为种子,产生随机数
a=1+(int)(rand()%100);//产生0~99之间的随机数