哪位大哥帮小弟我看一上随机数的有关问题

哪位大哥帮我看一下随机数的问题
[b][/b]#include <iostream>
#include <ctime>
#include <stdlib.h>
using namespace std;
void main(){
int t,i;
for(i=1;i<=10;i++){
 srand(time(0));
 t = 1+(int)(10.0*rand()/(RAND_MAX+1.0));
 cout<<i<<':'<<t<<endl;
}
}
我的程序每次运行产生同一个值,不知怎么回事,我想的是在1-10之间随机选5个不重复的数,每次选随机数不一样,且每次不重复,哪位大侠帮忙啊

------解决方案--------------------
srand(time(0)); //放在循环外面 一次就够了
------解决方案--------------------
C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\rand.c
C/C++ code
/***
*rand.c - random number generator
*
*       Copyright (c) Microsoft Corporation. All rights reserved.
*
*Purpose:
*       defines rand(), srand() - random number generator
*
*******************************************************************************/

#include <cruntime.h>
#include <mtdll.h>
#include <stddef.h>
#include <stdlib.h>

/***
*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
        )
{
        _getptd()->_holdrand = (unsigned long)seed;
}


/***
*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
        )
{
        _ptiddata ptd = _getptd();

        return( ((ptd->_holdrand = ptd->_holdrand * 214013L
            + 2531011L) >> 16) & 0x7fff );
}

------解决方案--------------------
srand();的作用是初始化随机数发生器。所以只需要初始化一次就可以了。将srand(time(0))放到循环的外面就可以了
------解决方案--------------------
你for循环里太快就结束了,其实造成结果每次srand时候,
种子值一样,产生的第一个随机数当然一样
要想使用时间来srand
C/C++ code
#include <iostream>
#include <ctime>
#include <stdlib.h>
#include <windows.h>
using namespace std;

void main()
{
    int t,i;
    for(i=1;i<=5;i++)
    {
        time_t m_time ;
        time(&m_time);
        srand(m_time);
        //cout<<m_time<<endl;
        /t = 1+(int)(10.0*rand()/(RAND_MAX+1.0));
        //t = rand() ;
        cout<<i<<':'<<t<<endl;
        Sleep(1000);
    }
}

------解决方案--------------------
C/C++ code

int RandomInt(int iMin, int iMax)
{
    if(   iMin   >=   iMax   )   return   iMin;   
    srand(GetTickCount());

    return   iMin   +   rand() %   (   iMax   -   iMin   +   1   );  
}