大众信息网

C++ 随机数生成

答案:4  mip版
解决时间 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;
}
}
}
全部回答
  • 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; }
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯