Tableaux , pointeurs en C

jess75 -  
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   -
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

2 réponses

cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   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
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   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