C语言随机数,如何生成既有正数又有负数的随机数呢
答案:3 悬赏:70
解决时间 2021-01-26 03:49
- 提问者网友:王者佥
- 2021-01-25 14:32
C语言随机数,如何生成既有正数又有负数的随机数呢
最佳答案
- 二级知识专家网友:酒安江南
- 2021-01-25 15:47
C语言生成的随机数为无符号数,即都是正的。要想生成正负随机的,可以先通过模除限定返回,再减去对应的范围的中间值即可。
比如,要获取-1000~+1000范围的随机数,总的数量为2001个,这样就可以通过代码
rand()%2001 使得到的结果限制在0-2000范围,再减去1000, 结果就是-1000~+1000之间了。
写成代码就是
rand()%2001 - 1000;
比如,要获取-1000~+1000范围的随机数,总的数量为2001个,这样就可以通过代码
rand()%2001 使得到的结果限制在0-2000范围,再减去1000, 结果就是-1000~+1000之间了。
写成代码就是
rand()%2001 - 1000;
全部回答
- 1楼网友:冷風如刀
- 2021-01-25 17:47
-rand()%51+25,就产生-25~25,-rand()%101+25,就产生-75~75
追问:第二个范围有问题吧
追问:第二个范围有问题吧
- 2楼网友:刀戟声无边
- 2021-01-25 16:14
可以随机两次,一次用来生成数据,一次用来生成符号,如:
int data, symbol ;
int i;
for( i=0;i<10;i++ )
{
data=rand();
symbol=rand();
if ( symbol % 2 ) //奇数时,为负数,偶数时,为正数
data=-data ;
printf("%d\n", data );
}
追问:恩,这种方法更科学,不过下面这种更简单
追答:good luck
int data, symbol ;
int i;
for( i=0;i<10;i++ )
{
data=rand();
symbol=rand();
if ( symbol % 2 ) //奇数时,为负数,偶数时,为正数
data=-data ;
printf("%d\n", data );
}
追问:恩,这种方法更科学,不过下面这种更简单
追答:good luck
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯