c++中int rand()能够返回负数呢?

[复制链接]
查看11 | 回复5 | 2015-10-24 14:53:22 | 显示全部楼层 |阅读模式
int rand()返回的全部都是正数吗? 能不能返回一个负数呢?
如果我想利用int rand返回出来任意的负数或者正数或者零,该如何使用呢?有什么技巧没有啊?
恳请各位给出答案!

回复

使用道具 举报

千问 | 2015-10-24 14:53:22 | 显示全部楼层
rand()函数不能够返回负数!在linux下man rand,可以看到函数说明:NAME
rand, rand_r, srand - pseudo-random number generatorSYNOPSIS
#include
int rand(void);DESCRIPTION
The rand() function returns a pseudo-random integer between 0 and RAND_MAX.
rand()函数返回一个0-RAND_MAX之间的伪随机整数
RAND_MAX是个宏,在不同的系统下有差别,定义在stdlib.h中
#define
回复

使用道具 举报

千问 | 2015-10-24 14:53:22 | 显示全部楼层
返回值加个负号就成了负数,-rand()返回-100~+100之间的随机数,rand()%200-100;任意负数正数或零,rand()-rand();//(这看起来可行,但是一般是得不到零的。)一般写成rand()%x-rand()%x;//(%x,限定随机数在一定范围。)
回复

使用道具 举报

千问 | 2015-10-24 14:53:22 | 显示全部楼层
rand返回的数值是正整数值,是零到int的最大值,如果想要包含正负号则需要在自己添加实现。int rand(int Max){
int Result;
randomize();
int state = rand(1);
Result = rand(Max);
if (!Resul
回复

使用道具 举报

千问 | 2015-10-24 14:53:22 | 显示全部楼层
标准rand 返回的不会是负的,他的范围0~ 2^31
回复

使用道具 举报

千问 | 2015-10-24 14:53:22 | 显示全部楼层
pow( -1, rand() ) * rand();
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行