Comment retirer une valeur d'un rand()

Résolu
Wenlix Messages postés 8 Date d'inscription vendredi 28 avril 2017 Statut Membre Dernière intervention 11 mars 2020 - Modifié le 11 mars 2020 à 02:36
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 11 mars 2020 à 12:31
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)
A voir également:

1 réponse

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
Modifié le 11 mars 2020 à 12:57
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;
}


1
Rejoignez-nous