读书人

求srand()和rand()函数用法解决思路

发布时间: 2012-04-13 13:50:24 作者: rapoo

求srand()和rand()函数用法
怎样用srand()和rand()实现整数0至10的不重复输出啊?

[解决办法]
srand((usnsigned int)time(NULL));
while(1)
{
printf("%d\n", rand() % 10);
[解决办法]

C/C++ code
       #include <stdlib.h>       int rand(void);            void srand(unsigned int seed);       #include <time.h>       time_t time(time_t *t);
[解决办法]
利用可利用的工具,查看msdn。
[解决办法]
linux平台也有帮助文档,利用man命令。
[解决办法]
srand和rand的使用简简单单像1和2楼那样,,至于不重复输出可以先保存10个bool代表10个数是否已经输出过判断一下就是了

[解决办法]
msdn里不就有例子??
[解决办法]
对了,如果对随机性要求高,不要用%10,用(int)(10.0*rand()/RAND_MAX),之前模拟硬币实验,发现前者的随机性有大问题
[解决办法]
C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\rand.c
C/C++ code
/****rand.c - random number generator**       Copyright (c) Microsoft Corporation. All rights reserved.**Purpose:*       defines rand(), srand() - random number generator********************************************************************************/#include <cruntime.h>#include <mtdll.h>#include <stddef.h>#include <stdlib.h>/****void srand(seed) - seed the random number generator**Purpose:*       Seeds the random number generator with the int given.  Adapted from the*       BASIC random number generator.**Entry:*       unsigned seed - seed to seed rand # generator with**Exit:*       None.**Exceptions:********************************************************************************/void __cdecl srand (        unsigned int seed        ){        _getptd()->_holdrand = (unsigned long)seed;}/****int rand() - returns a random number**Purpose:*       returns a pseudo-random number 0 through 32767.**Entry:*       None.**Exit:*       Returns a pseudo-random number 0 through 32767.**Exceptions:********************************************************************************/int __cdecl rand (        void        ){        _ptiddata ptd = _getptd();        return( ((ptd->_holdrand = ptd->_holdrand * 214013L            + 2531011L) >> 16) & 0x7fff );} 

读书人网 >C语言

热点推荐