2017-07-16 151 views
-3

我试图写一个C++代码,得到的输入形式的用户,并存储在数组中,然后打印背面的元件随机地在4radomly从阵列上使用C++

下面

组的每一个循环中选择n个元素是我的代码。

#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; 
} 
+0

池获得4张随机数1.你的问题是什么? 2.你在'for'循环中有*未定义的行为(你正在访问数组越界) – UnholySheep

+1

你为什么用C标记你的问题? – pmg

+0

@pmg it's C++ not c。 –

回答

2

如果你只是想从4个或多个数字,那么一个简单的方法来做到这一点是刚刚打乱所有条目每次和返回第4

+0

我该如何实施洗牌? –

+0

@NtirpangLouis:搜索“Fisher-Yates shuffle算法”。应该带出很多链接,例如[维基百科(https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle)。 –

+2

@NtirpangLouis如果不被赋值禁止,[使用'std :: shuffle'](http://en.cppreference.com/w/cpp/algorithm/random_shuffle) – user4581301