Aide ! ca coince drolement

Fermé
flight7218 Messages postés 13 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 12 septembre 2011 - 24 mai 2007 à 12:57
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 - 28 mai 2007 à 09:47
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

5 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
24 mai 2007 à 13:22
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
flight7218 Messages postés 13 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 12 septembre 2011
24 mai 2007 à 13:45
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
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
24 mai 2007 à 14:06
Salut,

J'ai test ton programme ça marche chez moi !
Avec 1, 2 et 3
0
flight7218 Messages postés 13 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 12 septembre 2011
24 mai 2007 à 14:35
...je ne pense pas...
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
24 mai 2007 à 14:58
Tu sais, j'ai pas de raison de te mentir mais bon pense ce que tu veux
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
24 mai 2007 à 16:04
Ca sera mieux de nous montrer ce que tu fait.
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
25 mai 2007 à 09:56
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
25 mai 2007 à 11:15
Salut,

c'est à flight7218 que j'ai demandé, pas à toi :-))
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
25 mai 2007 à 11:46
Oups ok dsl ^^
0
flight7218 Messages postés 13 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 12 septembre 2011
26 mai 2007 à 20:46
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
26 mai 2007 à 21:25
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

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

Posez votre question
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
28 mai 2007 à 09:47
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