\Directory{exo-TAB1-ALGO-recherche-d-un-element}

\section{Exercice : recherche d'un élément dans un tableau}

\WebRef

Soit \PRG{t} un tableau de \PRG{20} entiers déjà rempli au hasard avec des nombres pris entre 0 et 9.
écrire un algorithme qui trouve la première case du tableau qui contient le nombre 0 et l'affiche
sous la forme :
\begin{verbatim}
  0 est dans la case t[15]
\end{verbatim}

\paragraph{Question} que se passe-t'il si le nombre 0 n'est pas dans le tableau \PRG{t} ?

\begin{Correction}[ : Solution 1 utilisant une boucle for + break]
\begin{Code*}
#include <stdio.h>
#include <stdlib.h>
#include <inf111.h>

int main(){
  int t[20];
  remplir_tab_int(0,19,t,0,9) ;
  affiche_tab_int(0,9,t,1) ;

  printf("\n Solution 1 utilisant une boucle for + break \n") ;
\end{Code*}
%
\begin{Code}
  int i;

  for(i=0 ; i<20 ; i=i+1){
    if (t[i]/*{== 0}*/)
     { break ; }
   }

  if (i < /*{20}*/)
    { printf("0 est dans la case t[%i]",i) ; }
  else
    { printf("0 n'est pas dans le tableau") ; }
\end{Code}
\end{Correction}


\begin{Correction}[ : Solution 2 utilisant une boucle while]
\begin{Code*}
  printf("\n Solution 2 utilisant une boucle while \n") ;    
\end{Code*}
%
\begin{verbatim}
  int i ;
\end{verbatim}
%
\begin{Code}
  i=0;
  while(i< /*{20}*/ && t[i]/*{!= 0}*/)
   { i=i+1 ; }

  if (i < /*{20}*/)
    { printf("0 est dans la case t[%i]",i) ; }
  else
    { printf("0 n'est pas dans le tableau") ; }   
\end{Code}

\begin{Code*}
  printf("\n");  
  return 0 ;
}  
\end{Code*}
\end{Correction}
