Aide ! ca coince drolement

flight7218 Messages postés 13 Statut Membre -  
Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour

j'ai commencé un petit bout de programme , il s'agit de comparer un entier choisi à une liste (tableau) , voici mon programme:

int tab[3]={1,2,3};
int i=0,n=0;
printf("choisir n:");
scanf("%ld",&n);
if(tab[i++]==n)
{
printf("ce nombre est dans la liste!!");
}
else
{
printf("ce nombre n'est pas dans la liste");
}

lorsque n=1 ca marche , mais par pour n=2 ou 3

Pourriez vous m'indiquer les corrections à apporter à mon programme pour qu'il fonctionne ?

Merci infiniment à vous
Configuration: Windows XP
Internet Explorer 7.0

5 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    tu ne boucle pas sur les éléments de tableau
    tu testes tab[0] et tu incrémente le i

    if (tab[i++] == n)
    et équivalent à
    if (tab[i] == n)
    ++i;
    et comme i est initialiser à 0 tu ne teste que le 1er élément du tableau

    essaie
    int tab[3]={1,2,3}; 
    int i,n=0; 
    
    printf("choisir n:"); 
    scanf("%ld",&n); 
    
    for(i=0;i<3;++i)
      if(tab[i] == n) 
        printf("ce nombre est dans la liste!!"); 
      else 
        printf("ce nombre n'est pas dans la liste"); 
    ou pour utiliser ta notation
    int tab[3]={1,2,3}; 
    int i,n=0; 
    
    printf("choisir n:"); 
    scanf("%ld",&n); 
    
    for(i=0;i<3;)
      if(tab[i++] == n) 
        printf("ce nombre est dans la liste!!"); 
      else 
        printf("ce nombre n'est pas dans la liste"); 

    0
    1. flight7218 Messages postés 13 Statut Membre
       
      Merci pour tes reponses , mais apparement le test ne fonctionne toujours pas pour les autres valeurs du tableau.



      int tab[3]={1,2,3};
      int i,n=0;

      printf("choisir n:");
      scanf("%ld",&n);

      for(i=0;i<3;)
      if(tab[i++] == n)
      {
      printf("ce nombre est dans la liste!!");
      }
      else
      {
      printf("ce nombre n'est pas dans la liste");
      }
      0
    2. Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   94
       
      Salut,

      J'ai test ton programme ça marche chez moi !
      Avec 1, 2 et 3
      0
    3. flight7218 Messages postés 13 Statut Membre
       
      ...je ne pense pas...
      0
    4. Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   94
       
      Tu sais, j'ai pas de raison de te mentir mais bon pense ce que tu veux
      0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Ca sera mieux de nous montrer ce que tu fait.
    0
  3. Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   94
     
    J'ai juste repris le code en <2>
    int tab[3]={1,2,3};
    int i,n=0;
    
    printf("choisir n:");
    scanf("%ld",&n);
    
    for(i=0;i<3;)
    if(tab[i++] == n)
    {
    printf("ce nombre est dans la liste!!\n");
    }
    else
    {
    printf("ce nombre n'est pas dans la liste\n");
    }
    Et j'ai testé pour 1, 2 et 3.
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      c'est à flight7218 que j'ai demandé, pas à toi :-))
      0
    2. Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   94
       
      Oups ok dsl ^^
      0
    3. flight7218 Messages postés 13 Statut Membre
       
      désolé à la compilation du code produit par Stupflipe ca donne:
      j'ai pour n=1:
      ce nombre est dans la liste!!
      ce nombre n'est pas dans la liste.
      ne nombre n'est pas dans la liste
      appuyer sur une touche pour continuer

      pour n=2
      ce nombre n'est pas dans la liste
      ce nombre est dans la liste!!
      ce nombre n'est pas ans la liste
      appuyer sur une touche pour continuer

      pour n=3:

      ce nombre est dans la liste!!
      ce nombre est dans la liste!!
      ce nombre n'est pas dans la liste.

      j'arrive pas à comprendre d'ou viennent ces reponses

      merci si vous pouvez m'aider à debloquer la situation

      flight
      0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    c'est ça que tu veux?
    lami20j@debian:~/trash$ cat ccm.c
    #include <stdio.h>
    
    #define OUI 1
    #define NON 0
    
    int main ()
    {
      int tab[3] = { 1, 2, 3 };
      int i, n = 0;
      int test = NON;
    
      printf ("choisir n:");
      scanf ("%d", &n);
    
      for (i = 0; i < 3;){
          if (tab[i++] == n){
              test = OUI;
              break;
          }else
                    test = NON;
      }
      if (test == OUI)
        printf ("ce nombre est dans la liste\n");
      else
        printf ("ce nombre n'est pas dans la liste\n");
      return 0;
    }
    lami20j@debian:~/trash$ ./ccm
    choisir n:1
    ce nombre est dans la liste
    lami20j@debian:~/trash$ ./ccm
    choisir n:2
    ce nombre est dans la liste
    lami20j@debian:~/trash$ ./ccm
    choisir n:3
    ce nombre est dans la liste
    lami20j@debian:~/trash$ ./ccm
    choisir n:4
    ce nombre n'est pas dans la liste
    
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Stupeflip Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   94
     
    Ah bah en effet c'est bizarre !! Surtout que moi j'obtiens bien :

    pour n=1:
    ce nombre est dans la liste!!
    ce nombre n'est pas dans la liste.
    ce nombre n'est pas dans la liste.
    appuyer sur une touche pour continuer

    pour n=2
    ce nombre n'est pas dans la liste.
    ce nombre est dans la liste!!
    ce nombre n'est pas dans la liste.
    appuyer sur une touche pour continuer

    pour n=3:

    ce nombre n'est pas dans la liste.
    ce nombre n'est pas dans la liste.
    ce nombre est dans la liste!!
    appuyer sur une touche pour continuer

    J'utilise Visual C++ 6.0 et j'ai compilé normalement. Voilà, si ça peut t'aider...
    0