以前看过类似的帖子,忘记具体怎么做了
请大家指点!

解决方案 »

  1.   

    unsigned int nSeed = (unsigned)time(NULL);
    srand(nSeed);int nNum=rand()%10+1;  //被调用10次就可
      

  2.   

    我觉得你这样是不能满足产生10个不同的随机数的。
    rand()%10 完全可能在产生相同的随机数,请指教
      

  3.   

    for( int i=0 ;i<10 ;i++ )
      int  temp = 10* rand() / MAX_RAND;       //10可以任意改(系统允许范围),2就表示0--2 之间的随机数,依次类推
    我是这么用的,较管用 ;
    我在VC6.0中调试,也没include什么头文件;
    到现在为止还没有见产生相同的随机数;
    仅供参考;
      

  4.   

    int arr[10];
    int s,i;
    int l,k;
    for(i=0;i<10;i++)
       arr[i]=i;
    for(i=0,k=10;i<10;i++;k--)
    {
         l=k* rand();
         s=arr[10* rand()];
         arr[l]=arr[k];
    }混乱写的代码,不过可以保证实现功能哦.
    }
      

  5.   

    用洗牌算法:
    1生成有序1,...,n的数列(这里n=10),
    2生成两个位置随机数,交换这两个位置的数据。
    3循环第2步sqr(n)+7次,
    4返回该数列
      

  6.   

    srand((unsigned int)time(NULL)%rand();
    i=rand()%10;srand((unsigned int)time(NULL)后一定还要加%rand()或其它随机数,否则rand()产生的不是随机数,而是相同的数.
      

  7.   

    GetTickCount()*rand()%10;
    //GetTickCount() 函数返回的是Windows从开机到现在一共所经历了多长时间,以DWORD显示,所以用这个DW值去和rand()函数所做的操作就一定会是一个随机数
      

  8.   

    xhzxlqt(人这一辈子),xqk(夏乾坤)你们的思路很好,但是我觉得可能没有明白我的意思
    我的意思是最好能不用判断语句直接产生10个不重复的整数,比如0-10