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
3834
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
20 octobre 2021
- 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)

1 réponse

cptpingu
Messages postés
3834
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
20 octobre 2021
124
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;
}



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