1.种子都从1开始

 

  1. #include<stdio.h> 
  2.  
  3. extern int rand0(void); 
  4.  
  5. int main(void){ 
  6.     int count; 
  7.      
  8.     for(count=0;count<5;count++){ 
  9.         printf("%d\n",rand0()); 
  10.     } 
  11.     getchar(); 

 

  1. #include<stdio.h> 
  2. static unsigned int next = 1;//本系统中,int和long的长度是一样的  
  3. int rand0(void){//计算机不具有自发性,这是一个伪随机数,可以预测数字的实际顺序  
  4.     next = next * 1103515245 + 12345;//next的值可能会溢出,但是没有关系,因为当超过最大值时,会循环到负数  
  5.     return (unsigned int)(next/65535)%32768;//而我们最后的返回值被转换为unsigned int类型了  

 

2.srand手动输入种子


  1. #include<stdio.h>  
  2.   
  3. extern int rand1(void);  
  4. extern void srand1(unsigned int x);  
  5.   
  6. int main(void){  
  7.     int count;  
  8.     unsigned seed;  
  9.       
  10.     printf("Please enter your choice:\n");  
  11.     while(scanf("%u",&seed) == 1){ //手动设置种子  
  12.         srand1(seed);  
  13.         for(count=0;count<5;count++){  
  14.             printf("%hd\n",rand1());   
  15.         }  
  16.         printf("Please enter again ,q to quit\n"); 
  17.     }  
  18.     printf("Done\n");  
  19.     return 0;  

 

  1. static unsigned long int next = 1; //rand和srand共享一个内部链接静态变量  
  2. int rand1(void){  
  3.     next = next * 1103515245 + 12345;  
  4.     return (unsigned int)(next/65536)%32768;  
  5. }  
  6. void srand1(unsigned int seed){  
  7.     next = seed;  

3.使用time函数自动设置种子

 

  1. #include<stdio.h> 
  2. #include<time.h> 
  3.  
  4. extern int rand2(void); 
  5. extern void srand2(unsigned int seed); 
  6.  
  7. int main(void){ 
  8.     int count; 
  9.      
  10.     srand2((unsigned int)time(0));//time可以返回系统时间返回值为数值类型,传送空指针即可  
  11.     for(count=0;count<5;count++){ 
  12.         printf("%d\n",rand2()); 
  13.     } 
  14.     getchar(); 
  15.     return 0; 

 

 

  1. static unsigned long int  next = 1; 
  2. int rand2(void){ 
  3.     next = next * 1103515245 + 12345; 
  4.     return (unsigned int)(next/65536)%32768; 
  5. void srand2(unsigned int seed){ 
  6.     next = seed;