随机产生六个不重复的数字

如何在1到22这22个数字中随机产生六个不重复的数字,并把它们存放到一个数组int a[6]中

#include
#include
#include
#define MAX 21
using namespace std;
int main()
{
int arr[6];
int i=0;
bool ret=false;
srand((unsigned)time(NULL));
while(1)
{
arr[i]=rand()%MAX+1;
for(j=0;j<i;j++)
{
if(arr[j]==arr[i])
{
ret=true;
}
}
if(!ret)
{
i++;
ret=false;
}
if(i==10)
{
break;
}
}
while(--i)
{
cout<<arr[i]<<" ";
}
}

int a[6]]
int nowNum = 0;
bool bFlag = false;
memeset(a,0,sizeof(a));
while(1)
{
    int n = rand()%21+1;
    bFlag = false;
    for(int i =0; i<nowNum; i++)
    {
        if(n == a[i])
        {
            bFlag = true;
            break;
        }
    }

    if(!bFlag)
    {
        a[nowNum++] = n;
    }
} 

修改lx624909677同学的:

const int COUNT=6;
int a[COUNT];
int nowNum = 0;

memeset(a,0,sizeof(a));
srand(time(NULL));

while(**nowNum < COUNT**)
{
int n = rand()%21+1;
bool bFlag = false;

    for(int i =0; i<nowNum; i++)
{
    if(n == a[i])
    {
        bFlag = true;
        break;
    }
}

if(!bFlag)
{
    a[nowNum++] = n;
}

}