Tri d'un tableau et recherche

Fermé
Ben42 - 22 déc. 2013 à 20:05
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 23 déc. 2013 à 09:48
Bonjour ! J'ai écrit un programme qui permet de trier un tableau d'entier par ordre croissant; et je dois maintenant le compléter pour qu'il recherche un entier donné en argument. Voici ce que j'ai écrit (le script n'est pas en entier, le reste marche parfaitement, c'est vraiment ici que ca me saoule) :


int r;

printf("Entrez l'entier recherché : ");
scanf("%d",&r);


for (i=0 ; i<d ; i++) {
if (tab[i] != r) { //tab est le tableau trié.
printf("L'entier %d n'est pas présent dans le tableau\n",r);
return 0;
}

else {
printf("L'entier %d est présent dans le tableau\n",r);
return 1;
}


Et chaque fois que je l'exécute, il m'écrit "L'entier %d n'est pas présent dans le tableau", mais qd je rentre un entier qui est dans le tableau !!

Pouvez vous m'aider svp ! :D
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
23 déc. 2013 à 09:48
Bonjour,

Algorithmiquement, c'est faux.
for (i=0 ; i<d ; i++) {
if (tab[i] != r) { //tab est le tableau trié.

Dès la 1ere itération, si c'est différent, tu affiches que l'élément n'est pas présent dans le tableau.

Il faut parcourir tout le tableau avant de dire que l'élément est absent du tableau.
Cela donnerait :

Saisir r
Pour chacun des éléments du tableau
Si élément == r Alors
Afficher "r est présent dans le tableau"
Fin Fonction
Fin Si
Fin Pour
Afficher "r est absent du tableau"
--

Google is your friend
0