Partage
  • Partager sur Facebook
  • Partager sur Twitter

aide; Aléatoire

Sujet résolu
    9 août 2018 à 1:24:06

    Bonjour, je suis en train de faire le cours de c# sur ce site et je me trouve à l'exercice où il faut créer un tirage au lotto et le problème c'est que je dois tirer un nombre entre 1 et 49 mais il y a souvent le chiffre 0 qui arrive et quelques fois même plusieurs fois. Si il y a quelqu'un qui pourrait m'aider, ça m'aiderais beaucoup. merci

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace tirage_lotto
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Création de le liste
                int[] Lotto = new int[7];
    
                //Remplissage du tableau
                Random Aleatoire = new Random();
                for (int i = 0; i <= Lotto.Length-1;  i++)
                {
                    bool LeMeme = false;
                    int Tirage = Aleatoire.Next(1, 49);
                    foreach (int n in Lotto)
                    {
                        if (n == Tirage)
                        {
                            LeMeme = true;
                        }
                    }
                    if (LeMeme != true)
                    {
                        Lotto[i] = Tirage;
                    }
                }
    
                //Affichage du tableau
                foreach (int i in Lotto)
                    Console.WriteLine(i);
            }
        }
    }
    



    • Partager sur Facebook
    • Partager sur Twitter
      9 août 2018 à 4:25:39

      Alors, premièrement une bonne pratique est de mettre les noms de variables commençant par une minuscule.

      Deuxièmement pour avoir un chiffre entre 1 et 49 inclus il faut écrire 

      Aleatoire.Next(1,50)

      (La borne supérieure étant exclue.)

      Après l'initialisation du tableau fait que tu as un tableau avec sept "0". Il te manque une boucle while dans ton code : ici tu testes si le tirage n'est pas déjà sorti et si c'est le cas... tu passes au tirage suivant. Donc Lotto[i] ne bouge pas et vaut toujours 0.

      Je ne vais pas te mâcher le code mais juste t'indiquer qu'il faut inclure un while qui fait que tant que le tirage est déjà sorti, tu effectues un nouveau tirage. Du genre:

      while(true)
      {
        //Effectuer un nouveau tirage
      }

      Voilà, il me semble qu'avec ça tu devrais t'en sortir.

      Bon courage. :)

      • Partager sur Facebook
      • Partager sur Twitter
        9 août 2018 à 9:23:47

        Bonjour,

        ClémentFlandin a écrit:

        while(true)
        {
          //Effectuer un nouveau tirage
        }

        Par contre, évites le while true pour ton programme et privilégies une condition à la place du true ;)

        Dans le cas d'un tirage de loto, tu peux mettre un nombre maximal de numéros à tirer par exemple.

        o/

        -
        Edité par Nairowyn 9 août 2018 à 9:26:17

        • Partager sur Facebook
        • Partager sur Twitter
        Insanity is doing the exact same fuckin' thing over and over again, expecting shit to change...
          9 août 2018 à 9:36:05

          Merci à vous deux, je vais essayer de terminer l'exercice avec vos conseils
          • Partager sur Facebook
          • Partager sur Twitter
            9 août 2018 à 10:45:44

            Oui, effectivement il faut une condition à la place du "true" pour le while, merci pour la précision. :)
            • Partager sur Facebook
            • Partager sur Twitter

            aide; Aléatoire

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown