C++怎么让a被赋值成一个1-100的随机数

 我来答
风若远去何人留
推荐于2017-09-27 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450127
专业C/C++软件开发

向TA提问 私信TA
展开全部

可以借用模除函数来实现。

模除也就是取余,其可以通过%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;
}
今天决定不起床了
2011-12-08 · TA获得超过1865个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:408万
展开全部
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是整数的范围。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiaoyuqian2010
2011-12-08 · TA获得超过230个赞
知道小有建树答主
回答量:176
采纳率:100%
帮助的人:97.5万
展开全部
a=rand()%100+1;就可以了;
rand函数就是产生一个随机数,你用这个随机数对100取余得到了0-99之间的随机数,加1就是1-100了,这个思想很常用哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-09-25
展开全部
#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);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sun_siliang
2011-12-08 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4614万
展开全部
int x,a;//定义2个整型变量
srand(time(0));//以时间为种子,产生随机数
a=1+(int)(rand()%100);//产生0~99之间的随机数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式