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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
   |  
#include <stdio.h>
#include <math.h>
 
#define MAX 10
 
typedef struct tab {
   int t[MAX];
   int fin;
}tab;
 
tab F;
 
int rechercher(tab *S,int elt)
{
   int i;
 
   printf("***elt=%d\n",elt);
   printf("***fin=%d\n",S->fin);
   for(i=0;i<=S->fin;i++)
   {
      printf("cherche=%d\n",S->t[i]);
      if(elt==S->t[i])
         return i;
    }
 
    /*
    0 est une position donc il faut renvoyer autre chose pour detecter
    la non detection :-)
   */
 
    return -1;
}
 
 
//Qui de l'utilité du type de retour
tab inserer(tab *S, int elt)
{
    int i=0;
    while(S->t[i]!=-1)
    {
      printf("coucou \n");
      i++;
    }
    printf("indice i : %d \n",i);
    S->t[i]=elt;
 
    //Remarque la defference
    return *S;
}
 
int main(int arg, char** argv)
{
   int i;
 
   //tab F;
   F.fin = 10;
   for(i=0;i<10;i++)
  {
      F.t[i]=-1;
   }
 
   inserer(&F,5);
   printf("Je regarde la premiè case %d \n",F.t[0]);
   inserer(&F,4);
   inserer(&F,2);
   inserer(&F,6);
   inserer(&F,9);
   inserer(&F,8);
   inserer(&F,7);
   printf("Voici l'indice ou se trouvre la valeur rechercher %d \n   ",rechercher(&F,2));
 
} | 
Partager