Probleme Langage C

Fermé
InTheHood Messages postés 2 Date d'inscription dimanche 9 mars 2014 Statut Membre Dernière intervention 9 mars 2014 - 9 mars 2014 à 18:11
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 9 mars 2014 à 19:15
Salut à tous !
Je dois faire un programme en langage C qui dit qu'on doit vérifier si un entier entrée au clavier appartient à un tableau qu'on a créer (les valeurs du tableau c'est nous qu'on les rentres).
J'ai réussi à créer un tableau et à y entrer plusieurs valeur mais je ne sais pas comment vérifier si un entier entrée au clavier appartient a ce tableau, veuillez m'éclairer
Merci beaucoup !
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
9 mars 2014 à 18:38
Bonjour,

Il suffit de faire une petite boucle for pour parcourir tous les éléments du tableau. Dès qu'il y a égalité avec le nombre saisi par l'utilisateur, c'est que l'élément se trouve dans le tableau.

N'hésite pas à poster le code que tu as déjà fait en tentant d'implémenter ce que j'ai dit si tu n'es pas sûr de toi. On te corrigera.
N'oublie pas d'utiliser la balise "code c" (liste déroulante situé à droite du bouton "souligné").

Cdlt,
0
InTheHood Messages postés 2 Date d'inscription dimanche 9 mars 2014 Statut Membre Dernière intervention 9 mars 2014
9 mars 2014 à 18:59
Merci pour ta réponse, alors voila mon programme:
#include<stdio.h>
int main()
{

int i, N,tab[100],x;

printf("Entrer le nombre de case pour notre tableau : ");
scanf("%d",&N);

i=0;
while(i<N)
{
printf("Entrer valeur pour tableau : ");
scanf("%d",&tab[i]);
i++;
}

for(i=0;i<N;i++)
{
printf("%d ",tab[i]);
}
printf("\n");

for(i=0;i<N; i++)
{
printf("Entrer une valeur : ");
scanf("%d",&x);
}

for (i=0;i<N;i++)
{
if (x==tab[i])
{
printf("La valeur appartient x appartient au tableau");
}
else
{
printf("La valeur x n'appartient pas au tableau");
}

}

getchar();
getchar();


return 0;

}

Je compile, j'execute, et pour x je donne la valeur 4 (4 appartient à mon tableau) mais ca m'affiche "La valeur x n'appartient pas au tableau" et cela se répète plusieurs fois :s !
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
9 mars 2014 à 19:15
Heureusement que j'ai dit d'utiliser la balise "code" situé à droite du bouton "souligne"...
printf("La valeur appartient x appartient au tableau");
Il faut mettre un '\n' à la fin de ce printf() et du dernier. Ou alors mettre un putchar('\n') pour forcer l'affichage avant le return 0; (si tu en veux pas, tu peux faire un fflush() sur la sortie).

for(i=0;i<N; i++)
{
printf("Entrer une valeur : ");
scanf("%d",&x);
}

Il faut entrer N fois une valeur ? En lisant ton énoncé, je comprends qu'après avoir défini ton tableau, l'utilisateur choisit un nombre (et un seul). Non ?
Si c'est bien ça qu'il faut le faire, il faut l'imbriquer dans le for suivant, sinon seule la dernière valeur saisie sera prise en compte.

for (i=0;i<N;i++)
{
if (x==tab[i])
{
printf("La valeur appartient x appartient au tableau");

Non c'est pas bon ça. Il faut parcourir tout le tableau avant de conclure que x appartient au tableau. Il faut par exemple définir une variable xPresent, l'initialiser à 0 et mettre 1, s'il y a une égalité. Le plus propre serait de faire une fonction.

Cdlt,
0