bon code mais si j'ai une valeur qui n'est pas dans le tableau il y a pas de printf qui dit cible pas presente
j'ai fait un vecteur ordre croissant avec des valeurs que le user entre ça marche mais si l'user entre une cible à rechercher pas présente il y a rien qui se passe
ç'est àdire que normalement il faudrait afficher la cible n'est pas presente.
Merci de me dire ce qui va pas.
Code:
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<stdlib.h>
#include <stdio.h>
main()
{
/* Déclarations */
int vec[50]; /* tableau donné */
int cible = 0; /* valeur à rechercher */
int position = -1; /* position de la valeur */
int nbel = 0; /* dimension */
int i = 0; /* indice courant */
int inf, milieu, sup; /* limites du champ de recherche */
/* Saisie des données */
printf("Dimension du tableau (max.50) : ");
scanf("%d", &nbel );
for ( i = 0; i < nbel; i++ )
{
printf("Element %d : ", i);
scanf("%d", &vec[i]);
}
printf("Cible a rechercher : ");
scanf("%d", &cible );
/* Affichage du tableau */
printf("Tableau donne : \n");
for ( i = 0; i < nbel; i++ )
printf("%d ", vec[i]);
printf("\n");
/* Initialisation des limites du domaine de recherche */
inf = 1;
sup = nbel;
/* Recherche de la position de la valeur */
position = -1;
while (( inf <= sup ) && ( position == -1 ))
{
milieu =( inf + sup ) / 2;
if (cible < vec[milieu])
sup = milieu-1;
else
if (cible > vec[milieu])
sup = milieu + 1;
else
position = milieu;
}
/* Edition du résultat */
if ( position == -1 )
printf("La cible n'est pas presente\n");
else
printf("La valeur %d se trouve a la position %d. \n",
cible, position + 1);
return 0;
} |
1 pièce(s) jointe(s)
une version plus simplifier de tn programme
Pièce jointe 193259
Code:
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
| #include <stdio.h>
main()
{
/* Déclarations */
int vec[50]; /* tableau donné */
int cible; /* valeur à rechercher */
int dim; /* dimension */
int i=0 ; /* indice courant */
/* Saisie des données */
printf("Dimension du tableau (max.50) : ");
scanf("%d", &dim );
for ( i = 0; i < dim; i++ )
{
printf("\n Element %d : ", i+1);
scanf("%d", &vec[i]);
}
printf("\n Cible a rechercher : ");
scanf("%d", &cible );
/* Affichage du tableau */
printf("\n Tableau donne : ");
for ( i = 0; i < dim; i++ )
printf("%d ", vec[i]);
printf("\n");
/* Recherche de la position de la valeur */
i=0 ;
while ((vec[i]!=cible) && ( i!= dim+1 ))
{i=i+1;
}
/* Edition du résultat */
if ( i == dim+1 )
printf("\n La cible n'est pas presente");
else
printf("\n La valeur %d se trouve a la position %d. ",cible, i+1);
return 0;
} |