随机数赋值,srand()放在循环体和循环体外的区别
这是一段由下面一段代码引发的血案:
/*把srand放在循环里,输出永远是1111111111*/#include<stdio.h>#include<stdlib.h>int main(){ int i=0; //srand(10); //这条去掉 for(i=0;i<10;i++) { srand(10); //放在循环里 printf("%d",rand()%10); } printf("\n"); return 0;}rand函数是一个伪随机数列。在没有srand的情况下,每次生成的序列都是一样的。
而运行了srand(n);以后在n相同的情况下,rand每次生成的序列还是一样的。
就是说,如果每次运行一次srand(n);再运行rand,生成的第一个数都是一样的。(time(NULL),是以秒为单位,一秒钟数字增加一个)