用c++编程,从一百个数随机选出10个,再从剩下的90个随机选10个,以此类推。。

如题所述

用vector和随机生成数,就可以解决的,先把100个数放到vector,然后随机生成10个数对剩余的总数求模,取出vector对应的数,然后删除vector中对应的数,一次递归就可以啦
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-19
c/c++中间求区间[a,b](a<b)上的N个随机数
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include<math.h>

#define N 10 //假设要生成10个不同的随机数
#define A 20 //假设区间为[20,100]
#define B 100

int isIn(int *num,int index,int pat)//看生成的随机数pat是否在已经存在
{
int i=0;
for(i=0;i<index;++i)
if(pat==num[i])
return 1;
return 0;
}

int main()
{
int num[N];
srand((unsigned)time(NULL));
int i=0;
while(i<N)
{
int result=rand()%(B-A+1)+A;
if(!isIn(num,i,result))
{
num[i]=result;
++i;
}
}

for(i=0;i<N;++i)
printf("%d ",num[i]);//输出这10个随机数
return 0;
}
相似回答