2017-07-16 2 views
-3

Je suis en train d'écrire un code C++ qui se forme utilisateur entrées et stocke dans un tableau, puis imprime de nouveau les éléments au hasard en groupes de 4.sélection radomly n éléments d'un tableau sur chaque boucle avec C++

ci-dessous est mon code.

#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

1. Quelle est votre question? 2. Vous avez * comportement non défini * dans les deux boucles 'for' (vous accédez au tableau hors limites) – UnholySheep

+1

Pourquoi avez-vous tagué votre question avec C? – pmg

+0

@pmg c'est C++ pas c. –

Répondre

2

Si vous voulez juste pour obtenir quatre nombres aléatoires à partir d'un pool de 4 chiffres ou plus, puis un moyen facile de le faire est de mélanger juste toutes les entrées à chaque fois et retourner la première 4.

+0

comment puis-je implémenter le shuffle? –

+0

@NtirpangLouis: Recherche de "algorithme aléatoire de Fisher-Yates". Devrait apporter beaucoup de liens, par ex. [Wikipedia] (https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle). –

+2

@NtirpangLouis si cela n'est pas interdit par l'affectation, [utilisez 'std :: shuffle'] (http://en.cppreference.com/w/cpp/algorithm/random_shuffle) – user4581301