【问题标题】:radomly selecting n elements from an array on every loop with c++使用c ++在每个循环中从数组中随机选择n个元素
【发布时间】: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!

标签: c++ arrays loops permutation


【解决方案1】:

如果您只想从包含 4 个或更多数字的池中获取四个随机数,那么一种简单的方法就是每次将所有条目打乱并返回前 4 个。

【讨论】:

  • 如何实现随机播放?
  • @NtirpangLouis:搜索“Fisher-Yates shuffle algorithm”。应该带来很多链接,例如Wikipedia.
  • @NtirpangLouis 如果没有被分配禁止,use std::shuffle
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
  • 2015-11-06
  • 2014-07-23
  • 2014-06-19
相关资源
最近更新 更多