Comment retirer une valeur d'un rand() [Résolu]

Signaler
Messages postés
8
Date d'inscription
vendredi 28 avril 2017
Statut
Membre
Dernière intervention
11 mars 2020
-
cptpingu
Messages postés
3805
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 mars 2020
-
Bonsoir,
J'ai besoin de votre aide :
j'aimerais que rand sélectionne une valeur de 1 à 10 sauf 2. Mais je ne sais pas comment programmer le "sauf 2".

Pouvez-vous m'aider ?
Merci d'avance

EDIT : plus haut dans le programme, il y a ceci : srand(time(NULL)); (avec tout en haut #include time.h)

1 réponse

Messages postés
3805
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 mars 2020
98
Bonjour !

Dès le moment où tu veux une suite d'éléments non contiguës, tu es obligé de le représenter sous forme de liste. Que ce soit un choix random entre "pomme", "poire" ou "ananas" ou un choix entre 1, 3, 4, 5 ou 10, tu vas devoir lister et choisir parmi une liste.

Donc ceci devrait fonctionner:
#include <iostream>
#include <stdlib.h>

int main()
{
  srand(time(0));
  const int randList[] = {1, 3, 4, 5, 6, 7, 8, 9, 10};
  const int list_size = sizeof(randList) / sizeof(int);
  int index = rand() % list_size;
  int question = randList[index];
  std::cout << question << std::endl;
}



Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature