c语言如何生成0到2,000,000,000之间的随机数

如题!

#include <time.h> // 头文件包括它
long int x;
srand((unsigned)time(NULL)); // 用当前时间取得种子
x = rand() % 2000000000; // 这就是0到1999999999之间的随机数。
---------
如果要取更大的随机数,超出 long int 最大值,你可以把 数分成左右2部分,例如:
int x1,x2;
int v1=50000, v2=100000;
char str[20];
x1 = rand() % v1;
x2 = rand() % v2;
sprintf(str,"i=%d %d%d",i, x1,x2); // 把他们拼起来,存到字符串里。
----
MS VC++ 6.0 有 64 位 整型 _int64 x;
x = x1*v2+x2; // 把他们拼起来,存到长长整型里
printf("%12I64d\n", x); // 按12位场宽输出
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-14
大部分系统的RAND_MAX 为 32767,那么0 ~ 2,000,000,000之间的随机数可以这样生成
num = 2000000000 / RAND_MAX * rand();本回答被提问者采纳
第2个回答  2013-01-15
1932535784
Press any key to continue

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
int big;
srand((unsigned)time(NULL));
printf("%d\n",20000000000/(65535*rand()+1); //因为我的srand里的是unsigned 因此是65535
}

Warning: Invalid argument supplied for foreach() in /www/wwwroot/aolonic.com/skin/templets/default/contents.html on line 45
相似回答