Comparer des array

geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 - Modifié le 11 oct. 2022 à 21:35
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 13 oct. 2022 à 01:07

Bonjour,

voilà, j'ai une table d'une dimension à comparer à une table de deux dimensions.
la finalité entant de voir s'il ont les éléments en commun et de les afficher sur une table ou une liste.
les combinaisons désirées: Je je comparer la combinaison gagnante aux différents numéros(de #1 au numéro 10).

Combinaison #1:
9 42 49 2 9 6
Combinaison #2:
39 14 39 40 39 43
Combinaison #3:
29 37 12 42 37 34
Combinaison #4:
45 8 21 49 36 37
Combinaison #5:
21 34 24 6 37 5
Combinaison #6:
30 3 37 6 15 45
Combinaison #7:
41 47 15 49 41 35
Combinaison #8:
1 31 24 41 34 27
Combinaison #9:
7 18 36 10 20 1
Combinaison #10:
23 9 7 13 31 24

Numéro complémentaire:34

la combinaison gagnante est:
27 35 10 36 6 24

5 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
11 oct. 2022 à 23:30

Bonsoir

et qu'as-tu essayé ?


0
geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 1
Modifié le 12 oct. 2022 à 00:04

J'ai essayé ceci mais après un premier tour il me sort une erreur , c'est un peu long mais je suis débutant.

 private static void verification(int[,] tabcombinaisons, int[] combinaisonsGagnante, int numero_complementaire, int EntrerNombre)
        {
            int nbr_apparition = 0;

            bool plus_NumComplementaire = false;

            bool nbr_precedant;

            Console.WriteLine("Combinaisons gagnantes pour l'utilisateur");

            for (int i = 0; i < EntrerNombre; i++)
            {
                Console.WriteLine($"combinaison #{i + 1}:");

                nbr_precedant = true;

                for (int j = 0; j < combinaisonsGagnante.Length; j++)
                {
                    Console.WriteLine(tabcombinaisons[i, j] + " ");

                    if (nbr_precedant)
                    {
                        if (tabcombinaisons[i,j] == combinaisonsGagnante[j])
                        {
                            nbr_apparition++;
                        }
                        else
                        {
                            nbr_precedant = false;
                        }
                        if (tabcombinaisons[i, j] == numero_complementaire) plus_NumComplementaire = false;
                    }
                }
                switch (nbr_apparition)
                {
                    case 0:
                        nbr_0++;
                        Console.Write("combinaison non gagnante (0/6)");
                        break;

                    case 1:
                        nbr_1++;
                        Console.Write("combinaison non gagnante (1/6)");
                        break;

                    case 2:
                        nbr_2++;
                        Console.Write("combinaison non gagnante (2/6)");
                        break;

                    case 3:

                        if (plus_NumComplementaire)
                        {
                            nbr_3_plus++;

                            Console.Write(" la combinaison est gagnante (3/6 plus numero complémentaire)");

                            plus_NumComplementaire = false;
                        }
                        else
                        {
                            nbr_3++;
                            Console.Write(" la combinaison gagnante (3/6)");
                        }
                        break;

                    case 4:
                        if (plus_NumComplementaire)
                        {
                            nbr_4_plus++;
                            Console.Write(" la combinaison est gagnante (4/6 plus numero complémentaire)");
                        }
                        else
                        {
                            nbr_4++;
                            Console.Write(" la combinaison gagnante (4/6)");
                        }
                        break;

                    case 5:
                        if (plus_NumComplementaire)
                        {
                            nbr_5_plus++;
                            Console.Write(" la combinaison est gagnante (5/6 plus numero complémentaire)");
                        }
                        else
                        {
                            nbr_5++;
                            Console.Write(" la combinaison gagnante (4/6)");
                        }
                        break;

                    case 6:
                        nbr_6++;
                        Console.Write("la cagnotte (6/6)");
                        break;
                }
                nbr_apparition = 0;
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
12 oct. 2022 à 07:50

Merci de choisir CSharp dans la liste des langages quand tu postes un code, comme décrit là https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

 private static void verification(int[,] tabcombinaisons, int[] combinaisonsGagnante, int numero_complementaire, int EntrerNombre)
        {
            int nbr_apparition = 0;

            bool plus_NumComplementaire = false;

            bool nbr_precedant;

            Console.WriteLine("Combinaisons gagnantes pour l'utilisateur");

            for (int i = 0; i < EntrerNombre; i++)
            {
                Console.WriteLine($"combinaison #{i + 1}:");

                nbr_precedant = true;

                for (int j = 0; j < combinaisonsGagnante.Length; j++)
                {
                    Console.WriteLine(tabcombinaisons[i, j] + " ");

                    if (nbr_precedant)
                    {
                        if (tabcombinaisons[i,j] == combinaisonsGagnante[j])
                        {
                            nbr_apparition++;
                        }
                        else
                        {
                            nbr_precedant = false;
                        }
                        if (tabcombinaisons[i, j] == numero_complementaire) plus_NumComplementaire = false;
                    }
                }
                switch (nbr_apparition)
                {
                    case 0:
                        nbr_0++;
                        Console.Write("combinaison non gagnante (0/6)");
                        break;

                    case 1:
                        nbr_1++;
                        Console.Write("combinaison non gagnante (1/6)");
                        break;

                    case 2:
                        nbr_2++;
                        Console.Write("combinaison non gagnante (2/6)");
                        break;

                    case 3:

                        if (plus_NumComplementaire)
                        {
                            nbr_3_plus++;

                            Console.Write(" la combinaison est gagnante (3/6 plus numero complémentaire)");

                            plus_NumComplementaire = false;
                        }
                        else
                        {
                            nbr_3++;
                            Console.Write(" la combinaison gagnante (3/6)");
                        }
                        break;

                    case 4:
                        if (plus_NumComplementaire)
                        {
                            nbr_4_plus++;
                            Console.Write(" la combinaison est gagnante (4/6 plus numero complémentaire)");
                        }
                        else
                        {
                            nbr_4++;
                            Console.Write(" la combinaison gagnante (4/6)");
                        }
                        break;

                    case 5:
                        if (plus_NumComplementaire)
                        {
                            nbr_5_plus++;
                            Console.Write(" la combinaison est gagnante (5/6 plus numero complémentaire)");
                        }
                        else
                        {
                            nbr_5++;
                            Console.Write(" la combinaison gagnante (4/6)");
                        }
                        break;

                    case 6:
                        nbr_6++;
                        Console.Write("la cagnotte (6/6)");
                        break;
                }
                nbr_apparition = 0;

C'est plus facile à lire et donc à essayer de t'aider

0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
12 oct. 2022 à 08:50

As tu exécuté en pas à pas pour voir ce qu'il se passe?


0
geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 1
13 oct. 2022 à 00:34

oui, mais il me donne une erreur, je sais ce qu'il veut dire mais je ne vois pas vraiment où ca dépasse. Merci.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
13 oct. 2022 à 01:07

Peut-être de la variable EntrerNombre?

Je pense qu'elle ne sert à rien, puisque tu peux trouver la valeur directement depuis la taille du tableau.

Moi, je n'ai pas eu ce plantage, par contre, ça ne donne pas le résultat attendu, et tu devrais pouvoir voir d'où ça vient en pas à pas.


0
Rejoignez-nous