首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如何随机取多个数

2013-01-07 
怎么随机取多个数啊例如如果有1,2,3,......,100个数,要求从中随机取出10个数,不能重复,应该怎么实现啊[解

怎么随机取多个数啊
例如如果有1,2,3,......,100个数,要求从中随机取出10个数,不能重复,应该怎么实现啊
[解决办法]
大体思想是:第一次随机产生0到99之间的下标,第二次随机产生0到98之间的下标……依次类推,每次产生到哪个下标就把那个位置上的数“扣出去”……
[解决办法]
可以借助列表,取一个放进去一个,放前先在list中查找是否有,如果有就不添加,继续取
[解决办法]

/C++#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
bool Judge(int a[],int n);//判断是否有重复,没有重复返回true
int main()
{
  int num[10];
  srand(time(NULL));
  for(int i=0;i<10;i++)
  {
      num[i]=rand()%101;
      while(Judge(num,i)==false)
        num[i]=rand()%101;
      cout<<"num["<<i+1<<"]:"<<num[i]<<endl;
  }
}
bool Judge(int a[],int n)
{
    for(int i=0;i<n;i++)
        if(a[i]==a[n]) return false;
    return true;
}

热点排行