Tableaux , pointeurs en C

jess75 -  
MrSlave Messages postés 2657 Statut Membre -
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

  1. cchristian Messages postés 928 Statut Membre 131
     
    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
  2. MrSlave Messages postés 2657 Statut Membre 147
     
    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);
    }
    
    -1