C++ 随机数生成
关注:201 答案:4 手机版
解决时间 2021-02-26 06:38
- 提问者网友:断念劫难
- 2021-02-25 09:40
怎麼生成30个,各不相同的随机数并存入a[i]中,求代码
最佳答案
- 二级知识专家网友:時光叫我忘了他
- 2021-02-25 10:31
首先随机生成数,然后和之前所有生成的数比较,如果有相同的,就跳回去重新生成。这样保证没有重复的随机数。
以下是代码片段,复制粘贴到你的程序中即可。经测试成功运行。
srand(time(0)); //如果需要每次生成的值不一样,就加上这行,同时加上头文件time.h
int a[30] = 0;
for(i = 0;i < 30; i++)
{
GetNum:
a[i]=rand()%100;
for(int j = 0; j < i; j++)
{
if(a[i] == a[j])
{
goto GetNum;
}
}
}
以下是代码片段,复制粘贴到你的程序中即可。经测试成功运行。
srand(time(0)); //如果需要每次生成的值不一样,就加上这行,同时加上头文件time.h
int a[30] = 0;
for(i = 0;i < 30; i++)
{
GetNum:
a[i]=rand()%100;
for(int j = 0; j < i; j++)
{
if(a[i] == a[j])
{
goto GetNum;
}
}
}
全部回答
- 1楼网友:千里故人稀
- 2021-02-25 12:23
srand(time(NULL));
for(int i=0;i<30;i++)
a[i]=rand()%10000;
- 2楼网友:不愛又何必糾纏
- 2021-02-25 12:17
srand((unsigned)time(0));
int iArray[30];
for(int i = 0 ; i < 30 ; i++)
{
while(1)
{
bool bGet = false;
int iNum = rand();
for(int j = 0 ; j < i ; j++)
{
if(iNum == iArray[j])
{
break;
}
if(j == i - 1)
{
iArray[i] = iNum;
bGet = true;
}
}
if(bGet)
break;
}
}
- 3楼网友:可惜感動不是心動
- 2021-02-25 10:49
#include
#include
#include
#include
using namespace std;
vector rnd( int n )
{
srand( (unsigned)time(null) ); //以当前系统时间来实现随机数种子
vector v(n);
for(int i=0;i v = rnd( 100 ); //这个100,可以手动输入哦。呵呵。
copy( v.begin(),v.end(),ostream_iterator( cout," " ) );
return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!