使用c ++在每个循环中从数组中随机选择n个元素
Posted
技术标签:
【中文标题】使用c ++在每个循环中从数组中随机选择n个元素【英文标题】:radomly selecting n elements from an array on every loop with c++ 【发布时间】:2017-07-16 20:03:44 【问题描述】:我正在尝试编写一个 c++ 代码,该代码从用户获取输入并存储在一个数组中,然后以 4 个一组随机打印回元素。
下面是我的代码。
#include<iostream>
using namespace std;
int main()
int i; int arr[5];
cout << "Enter some numbers" << endl;
for(i=0; i<5; i++)
cin >> arr[i];
for(int k=0; k<5; k++)
cout << arr[k];
cout << " ";
cout << " " << endl;
【问题讨论】:
1.你有什么问题? 2. 您在两个for
循环中都有未定义的行为(您正在越界访问数组)
你为什么用 C 标记你的问题?
@pmg 是 c++ 而不是 c。
假设您将 for 循环更改为 k
@NtirpangLouis 如果您已经知道它是 C++,而不是 C,那么请不要从现在开始将其标记为 C!
【参考方案1】:
如果您只想从包含 4 个或更多数字的池中获取四个随机数,那么一种简单的方法就是每次将所有条目打乱并返回前 4 个。
【讨论】:
如何实现随机播放? @NtirpangLouis:搜索“Fisher-Yates shuffle algorithm”。应该带来很多链接,例如Wikipedia. @NtirpangLouis 如果没有被分配禁止,usestd::shuffle
以上是关于使用c ++在每个循环中从数组中随机选择n个元素的主要内容,如果未能解决你的问题,请参考以下文章