请教一个随机数疑难问题

skyaspnet 2010-11-03 11:02:29

如何能在C里实现像C#那样的功能,也就是在0-1之间生成一个随机的小数?

谢谢各位大侠!
...全文
147 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
村长_乐 2010-11-04
  • 打赏
  • 举报
回复
来晚了...
skyaspnet 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 shexinwei 的回复:]

C/C++ code

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
srand((int)time(0));
for(int i = 0;i < 10;i++)
printf("%f\n",(double)((double)rand()/RAND_MAX));
……
[/Quote]

非常感谢
shexinwei 2010-11-03
  • 打赏
  • 举报
回复

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
srand((int)time(0));
for(int i = 0;i < 10;i++)
printf("%f\n",(double)((double)rand()/RAND_MAX));
printf("\n");
return 1;
}


VC6:

0.505753
0.873501
0.080355
0.337382
0.009064
0.938719
0.996948
0.737632
0.899716
0.369976

Press any key to continue

skyaspnet 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 shexinwei 的回复:]

引用 9 楼 skyaspnet 的回复:
引用 7 楼 cy_chance 的回复:

int GetRand()
{
srand((int)time(0));
return (int)(rand()/RAND_MAX);
}


每次都是输出0, 汗


强制转换成double就可以了,不要用int。
[/Quote]

还是不太对,大侠能给个修正版本的代码吗?谢谢!
shexinwei 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 skyaspnet 的回复:]
引用 7 楼 cy_chance 的回复:

int GetRand()
{
srand((int)time(0));
return (int)(rand()/RAND_MAX);
}


每次都是输出0, 汗
[/Quote]

强制转换成double就可以了,不要用int。
skyaspnet 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cy_chance 的回复:]

int GetRand()
{
srand((int)time(0));
return (int)(rand()/RAND_MAX);
}
[/Quote]

每次都是输出0, 汗
shexinwei 2010-11-03
  • 打赏
  • 举报
回复

int GetRand()
{
srand((int)time(0)); //用时间做种子,每次产生的数字将不同
return (int)(rand()/RAND_MAX);
}
C4Fun 2010-11-03
  • 打赏
  • 举报
回复
int GetRand()
{
srand((int)time(0));
return (int)(rand()/RAND_MAX);
}
skyaspnet 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 thefirstz 的回复:]

之前用一个srand设置下种子
[/Quote]

这个还是没有太明白如何实现,加了srand后每次重新运行还是一样
昵称很不好取 2010-11-03
  • 打赏
  • 举报
回复
之前用一个srand设置下种子
skyaspnet 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mstlq 的回复:]

#include <stdlib.h>
(double)rand()/RAND_MAX;
[/Quote]

实现是实现了,但是有个问题,每次运行都显示的是同一个数,这是怎么回事呢?

PS: MSTLQ的头像很帅
mstlq 2010-11-03
  • 打赏
  • 举报
回复
#include <stdlib.h>
(double)rand()/RAND_MAX;
try325 2010-11-03
  • 打赏
  • 举报
回复
库函数就是一个rand ...

但是,随机数生成算法,那就很多了 ...
不过很多要自己实现。
昵称很不好取 2010-11-03
  • 打赏
  • 举报
回复
rand()可以实现啊

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧