你可以看看,写的我觉得那就非常的好
VC
int rand( void )
The rand function returns a pseudorandom integer in the range 0 to RAND_MAX.
至于 RAND_MAX 在 stdlib.h 中有定义,为 32767
可能是库不同???难道linux下的C···不一样?
具体我也不知道不好意思
linuxC我没弄过···
x%3求余,只可能是0,1,2,因此,这里的随机数是0,1,2三个,赋值给b。
不建议直接使用rand()%N这种随机数生成使用,特别是当N比较大时候。
一般RAND_MAX = 32767,这样算下来,不太准确的随机数。
更好的方法如下:
double r = rand()/(double(RAND_MAX) +double(1)) // [0,1)b = r*3 + 1 // [1,3]
#include "stdio.h"#include "stdlib.h"
#include "time.h"/*需引用的头文件*/
int main(){
srand((unsigned)time(NULL))/*随机种子*/
int a=0,b=255//ASCII 字符范围
int i
for (i=0i<256i++){
int n=rand()%(b-a+1)+a/*n为a~b之间的随机数*/
printf("%c ",n)
}
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)