Tableaux , pointeurs en C

Bonjour,

Mon problème est très simple je crois mais je débute et je ne trouve pas la solution.

J'ai un tableau d'entier , je dois afficher le max mais aussi le "numéro" de la case.

main()
{

int tab[5];

int i,max,min;

tab[0]= 4 ;
tab[1]= 5 ;
tab[2]= 8 ;
tab[3]= 2;
tab[4]= 3 ;
max=0;

for(i=0;i<5;i++)
{

if (max<tab[i])
{

max=tab[i];
}

}
printf("max=%d\n",max);

}

Cette partie m'affiche bien " max=8" mais comment arriver à afficher que le max se trouve dans tab[2]?Est-ce à ce moment là qu'il faut utiliser des pointeurs?

Merci de votre aide
Configuration: Linux
Mozilla 1.9.0.3

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Tel que tu l'as prévu ton programme n'a pas besoin d'utiliser la notion de pointeur.
    Pour répondre à ta question il te suffit de préserver dans une variable (save_i par exemple) la valeur de l'INDICE i chaque fois où la condition if (max<tab[i]) est vérifiée. Ensuite tu affiches cette variable (save_i) dans le printf existant précédée d'un libellé.
    1. Pourquoi ne pas faire comme ça :
      main()
      {
      
      int tab[5];
      
      int i,max,min,position;
      
      tab[0]= 4 ;
      tab[1]= 5 ;
      tab[2]= 8 ;
      tab[3]= 2;
      tab[4]= 3 ;
      max=0;
      
      for(i=0;i<5;i++)
      {
      
      if (max<tab[i])
      {
      
      max=tab[i];
      position = i;
      }
      
      }
      printf("max=%d\n",max);
      printf("Le max se trouve au rang : %d\n",position);
      }