问题描述
- 随机产生六个不重复的数字
-
如何在1到22这22个数字中随机产生六个不重复的数字,并把它们存放到一个数组int a[6]中
解决方案
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;
}
}
解决方案二:
#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]<<" ";
}
}
解决方案三:
修改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;
}
}
时间: 2024-12-11 17:35:50