con+1是给srand()传入一个参数,以产生一个随机数种子,然后rand()就会根据随机数种子产生随机数,con+1的目的是为了产生不同的随机数种子,以产生不同的随机数。
不过for循环内因为随机数的种子是确定的,所以产生的随机数也是确定的,但是与不使用srand()设置随机数种子产生的随机数不同,意思就是随机数种子和产生的随机数之间有关联关系。
参考链接:
C语言中 srand()函数和rand()函数_Nuo__的博客-CSDN博客_c语言srand
仅供参考:C:\Program Files (x86)\Microsoft SDK\src\crt\rand.c
/***
*rand.c - random number generator
*
* Copyright (c) 1985-2001, Microsoft Corporation. All rights reserved.
*
*Purpose:
* defines rand(), srand() - random number generator
*
*******************************************************************************/
#include <cruntime.h>
#include <mtdll.h>
#include <stddef.h>
#include <stdlib.h>
#ifndef _MT
static long holdrand = 1L;
#endif /* _MT */
/***
*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
)
{
#ifdef _MT
_getptd()->_holdrand = (unsigned long)seed;
#else /* _MT */
holdrand = (long)seed;
#endif /* _MT */
}
/***
*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
)
{
#ifdef _MT
_ptiddata ptd = _getptd();
return( ((ptd->_holdrand = ptd->_holdrand * 214013L
+ 2531011L) >> 16) & 0x7fff );
#else /* _MT */
return(((holdrand = holdrand * 214013L + 2531011L) >> 16) & 0x7fff);
#endif /* _MT */
}
The srand() function sets its argument as the seed for a new sequence of pseudo-random integers to be returned by rand().
这个srand 只是为了给 rand 增加一个种子。不是这么使用
你把 srand() 放到for 循环前面