Sample: 
   srand( (unsigned)time( NULL ) );   
   int i;   
   for( i = 0;   i < 10;i++ )
      printf( "  %6d\n", rand()%(520-20)+20 );OK!!!

解决方案 »

  1.   

    srand( (unsigned)time( NULL ) );
    bx=20+rand()%500;
    by=20+rand()%300;
      

  2.   

    先从随机数的原理谈起.
    计算机的随机数都是由伪随机数,即是由小M多项式序列生成.产生每个小序列都有一个初始值,即随机种子.
    srand()产生随机种子.
    rand()产生随机数
    要保证计算机产生不相同的随机数,应保证它们的随机种子是不一样的.srand( (unsigned)time( NULL ) );就是以时间做为随机种子,因为每次你运行的时间总是不一样的.补充一点是小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,即你取得65535个随机数后它们又重复出现了.
    int nRand;
    srand( (unsigned)time( NULL ) );for(int i=0;i<65538;i++)
    {
       nRand=rand();
      if(i==1||i==65536)   
    printf("%d\r\n",nRand);
    }
      

  3.   

    srand( (unsigned)time( NULL ) );
    int i=min(max(rand%520),20),520);