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
3813
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
12 juin 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
3813
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
12 juin 2020
107
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