L'index se trouve en dehors des limites du tableau (débutant)

cs_soft57 Messages postés 3 Date d'inscription lundi 31 octobre 2011 Statut Membre Dernière intervention 13 janvier 2014 - 31 oct. 2011 à 12:51
Whismeril Messages postés 19077 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 juin 2024 - 22 nov. 2011 à 19:18
Bonjour,

J'ai un TP à rendre, mais j'ai une erreur que je n'arrive vraiment pas à résoudre.
Voici l'énoncé :

Initialiser un tableau de 5 mots au moment de la déclaration. Permettre la saisie d’une suite de mots et afficher un message indiquant si le mot saisi se trouve ou non dans le tableau. La saisie de la suite de mots se termine avec le mot FIN.
La recherche du mot saisi dans le tableau doit se faire dans une fonction qui retourne le message à afficher. Utiliser la concaténation de chaines de caractères pour introduire le mot recherché dans le message à afficher.


Je lance le programme, mon texte s'affiche normalement, mais lorsque je réponds et appuie sur entrée, j'ai un problème "L'index se trouve en dehors des limites du tableau".

Voici mon code :

namespace LES_ATELIERS4
{
    class tpa4
    {
        static void Main(string[] args)
        {

            string message;
            string[] tbMots = new string[5] { "Pomme", "Poire", "Carotte", "Banane", "Tomate" };
            string mots;

            Console.WriteLine("Entrez un mot à rechercher ou FIN pour terminer : ");
            mots = Console.ReadLine();
            while (mots != "FIN")
            {
               message = motsValide(ref mots, tbMots);
            

            Console.WriteLine(message);
            }
       }

        static string motsValide(ref string mots, string[] tbMots)
        {
            int cpt = 0;
            string messg;
            bool trouver = false;
            while (cpt <5 || trouver == false)
            {
               
                    if (mots == tbMots[cpt])
                    {
                       trouver = true;
                    }
                    else
                    {
                        trouver = false;

                    }
                    cpt ++;                  
                
                
            }
            if (trouver == true)
                messg = " Le mot '" + mots + "' existe dans le tableau.";
            else
                messg = " Le mot '" + mots + "' n'existe pas dans le tableau.";

            return (messg);


        }



    }

}


Si vous avez une solution je suis prenante ! Merci
A voir également:

7 réponses

Whismeril Messages postés 19077 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 juin 2024 657
22 nov. 2011 à 19:18
Bonsoir, je ne pense pas non plus que le sujet soit encore d'actualité,mais effectivement je l'était trompé. D'un autre côté je lui avais proposé Contains qui me semble répond au besoin


Whismeril
1
Rejoignez-nous