凉风习习 发表于 2006-5-11 13:17

C++问题

#include<iostream>
#include<ctime>
using namespace std;
int main()
{   int i;
      for( i=0;i<3;i++)
   {
   srand((unsigned)time(NULL));
   i=rand();
   cout<<"i is "<<i<<'\n';;
   }

return 0;
}
这个程序用来产生三个随机数,但是我的总是只有一行输出呢?还有srand((unsigned)time(NULL))是什么意思呢?我发现加了这个语句之后,产生的随机数是越大越大的而不是真正随机的数,这又是什么原因呢?谢谢

gyCai 发表于 2006-5-11 15:17

在TC编译器中,srand()函数是用来初始化种子的。而time()函数是用于获取日历时间的,楼主参数用NULL,那么获取的是当前日历时间,就是从1970年1月1日0时0分0秒到现在的秒数。因此,越往后这个种子就越大。另外,如果不初始化种子,那么经过32767还是32768(忘记了,不好意思)个数后会产生重复现象。至于你的随机数为什么会越来越大,看完上面描述您应该都明白了吧?

凉风习习 发表于 2006-5-11 23:23

明白谢谢啊
页: [1]
查看完整版本: C++问题