IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

trouver nombre dans un tableau


Sujet :

C++

  1. #1
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut trouver nombre dans un tableau
    Bonsoir

    Je doit faire un programme on je doit remplir un tableau à 3 lignes et 5 colonnes

    Une fois cela fait je dois saisir un nombre et mon programme doit me chercher et dire si oui ou non le nombre est dans le tableau. ( pour info je ne dois pas utiliser de sous programme ou de fonction )

    Voici mon programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    #include <iostream.h>
     
    int main ()
     
    {
    	const int t1=3,t2=5;
    	float tab[t1][t2],nbv;
    	int l,c;
    	bool trouve
     
    	cout<<" Remplir le tableau : ";
    	for (l=0;l<t1;l++)
    	{
    		for (c=0;c<t2;c++)
    		{
    			cin>>tab[l][c];
    		}
    	}
     
    	cout<<" Entrer un valeur a chercher en le tableau : ";
     
    	cin>>nbv;
     
        while (nbv!=tab[l][c])
        {
            for (l=0;l<t1;l++)
    	{
    		for (c=0;c<t2;c++)
    		{
    		if (nbv==tab[l][c])
            {
                trouve=true;
            }
            else 
            {
                trouve=false; 
            }
            }
    	}
        }
     
    	if (trouve=1)
    	{
    	cout<<" Le nombre "<<nbv<<" appartient au tableau ";
        }
        else
        {
    	 cout<<" Le nombre "<<nbv<<" n appartient pas au tableau ";
        }
      cin>>nbv;
      return 0;
     
    }
    J'arrive a saisir les valeurs pour les ranger dans mon tableau , mais je n'arrive pas a afficher 1 seul fois la phrase reponse " le nombre appartient ou n'appartient pas au tableau " . Une fois j'ai essayer et j'ai eu le bon résultat avec la phrase qui s'affiche a l'infini .

    Au second coup quand j'arrive à l'étape ou je dois taper le nombre à chercher . La phrase suivante s'affiche " entrer une valeur à chercher en le tableau " je tape le nombre et plus rien ne se passe.

    PS : le "cin" de la fin et le return sont la car je travail en int (mon compilateur ne lit pas les " void " .

  2. #2
    Membre averti
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Points : 387
    Points
    387
    Billets dans le blog
    3
    Par défaut
    Salut
    le problème vient de ce que tu parcours tous les éléments de ton tableau
    alors même que la valeur recherchée est trouvée !!
    Ainsi "trouve" passe à true puis repasse à false à la prochaine itération .
    Faut que tu trouves un moyen de sortir de tes boucles lorsque "trouve" passe
    à true .
    Pour le vérifier entre la dernière valeur de ton tableau dans "nbv" .
    Elle va etre trouvée car c'est la dernière itération ...

  3. #3
    Membre averti
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Points : 387
    Points
    387
    Billets dans le blog
    3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    #include <iostream.h>
     
    int main ()
     
    {
    const int t1=3,t2=5;
    float tab[t1][t2],nbv;
    int l,c;
    bool trouve
     
    cout<<" Remplir le tableau : ";
    for (l=0;l<t1;l++)
    {
    for (c=0;c<t2;c++)
    {
    cin>>tab[l][c];
    }
    }
     
    cout<<" Entrer un valeur a chercher en le tableau : ";
     
    cin>>nbv;
     
     
    for (l=0;l<t1;l++)
    {
        for (c=0;c<t2;c++)
        {
            if (nbv==tab[l][c])
            {
                trouve=true;
             }
           else
           {
                trouve=false;
           }    
            if(trouve) break;// sort de la boucle interne
        }
        if(trouve) break;// sort de la boucle externe
    }
     
    if (trouve=1)
    {
    cout<<" Le nombre "<<nbv<<" appartient au tableau ";
    }
    else
    {
    cout<<" Le nombre "<<nbv<<" n appartient pas au tableau ";
    }
    cin>>nbv;
    return 0;
     
    }
    Tu n'as pas besoin de WHILE()

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut
    Bonsoir

    Merci à vous pour vos tuyaux

    Voici ce que cela donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #include <iostream.h>
     
    int main ()
     
    {
    	const int t1=3,t2=5;
    	float tab[t1][t2],nbv;
    	int l,c;
    	bool trouve;
     
    	cout<<" Remplir le tableau : ";
    	for (l=0;l<t1;l++)
    	{
    		for (c=0;c<t2;c++)
    		{
    			cin>>tab[l][c];
    		}
    	}
     
    	cout<<" Entrer un valeur a chercher en le tableau : ";
     
    	cin>>nbv;
     
        for (l=0;l<t1;l++)
    	{
    		for (c=0;c<t2;c++)
    		{
    		if (nbv==tab[l][c])
    		{
               trouve=true;
               break;
            }
     
            }
    	}
     
        if (trouve=false)
        {
        cout<<" Le nombre "<<nbv<<" appartient au tableau ";
        }
        else
        {
        cout<<" Le nombre "<<nbv<<" n appartient pas au tableau ";
        }
     
      cin>>nbv;
      return 0;
     
    }
    Je pensais mettre " trouve= false" au début , car à la fin j'ai un doute sur ma structure qui me dit que " trouve = false " avec une valeur qui est en le tableau

  5. #5
    Membre averti
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Points : 387
    Points
    387
    Billets dans le blog
    3
    Par défaut
    Bien sur c une bonne idée ; tu peux encore simplifier , l'essentiel dans un
    premier temps c que ton programme fonctionne comme tu le souhaites

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Lai,

    Quand tu écris
    tu affectes la valeur false à trouve, tu ne fais pas le test que tu veux faire.

    Il faut écrire
    et de plus, tu affiches le mauvais message.
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    Membre chevronné
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Points : 1 921
    Points
    1 921
    Par défaut
    pas besoin d'infame break ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    bool trouve = false;
    for (l=0;l<t1 && !trouve;l++)
    {
        for (c=0;c<t2 && !trouve;c++)
        {
          trouve= (nbv==tab[l][c]);
        }
    }

Discussions similaires

  1. Trouver élément dans un tableau
    Par Lorddolf dans le forum Ruby
    Réponses: 6
    Dernier message: 02/04/2011, 08h22
  2. Trouver un nombre dans un tableau avec une fonction
    Par neufrdb dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 27/03/2011, 16h33
  3. [MySQL] Multiplication de 2 nombres dans un tableau
    Par BertMont dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/05/2007, 17h48
  4. Charger et générer des nombres dans un tableau
    Par virtuadrack dans le forum C
    Réponses: 7
    Dernier message: 30/03/2007, 16h35
  5. Comparaison de nombre dans un tableau.
    Par slackjayo dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 29/04/2005, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo