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
-
Messages postés
3817
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
2 septembre 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
3817
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
2 septembre 2020
112
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