void maxmin (int t[], int n, int & admax, int & admin)
{ int i ;
admax = t[1] ;
admin = t[1] ;
for (i=1 ; i
{ if (t[i] > admax) admax = t[i] ;
if (t[i] < admin) admin = t[i] ;
}
}
avec transmission par pointeurs
void maxmin (int t[], int n, int * admax, int * admin)
{ int i ;
*admax = t[1] ;
*admin = t[1] ;
for (i=1 ; i
{ if (t[i] > *admax) *admax = t[i] ;
if (t[i] < *admin) *admin = t[i] ;
}
}
Ici, si l’on souhaite éviter les « indirections » qui apparaissent systématiquement dans
les instructions de comparaison, on peut travailler temporairement sur des variables
locales à la fonction (nommées ici max et min). Cela nous conduit à une fonction de la
forme suivante :
void maxmin (int t[], int n, int * admax, int * admin)
{ int i, max, min ;
max = t[1] ;
min = t[1] ;
for (i=1 ; i
{ if (t[i] > max) max = t[i] ;
if (t[i] < min) min = t[i] ;
}
*admax = max ;
*admin = min ;
}
Voici un petit exemple de programme d’utilisation de la première fonction :
#include
using namespace std ;
main()
{ void maxmin (int [], int, int &, int &) ;
int t[8] = { 2, 5, 7, 2, 9, 3, 9, 4} ;
int max, min ;
maxmin (t, 8, max, min) ;
cout << "valeur maxi : " << max << "\n" ;
cout << "valeur mini : " << min << "\n" ;
}
Et voici le même exemple utilisant la seconde fonction :
#include
using namespace std ;
main()
{ void maxmin (int [], int, int *, int *) ;
int t[8] = { 2, 5, 7, 2, 9, 3, 9, 4} ;
int max, min ;
maxmin (t, 8, &max, &min) ;
cout << "valeur maxi : " << max << "\n" ;
cout << "valeur mini : " << min << "\n" ;
88
{ int i ;
admax = t[1] ;
admin = t[1] ;
for (i=1 ; i
if (t[i] < admin) admin = t[i] ;
}
}
avec transmission par pointeurs
void maxmin (int t[], int n, int * admax, int * admin)
{ int i ;
*admax = t[1] ;
*admin = t[1] ;
for (i=1 ; i
if (t[i] < *admin) *admin = t[i] ;
}
}
Ici, si l’on souhaite éviter les « indirections » qui apparaissent systématiquement dans
les instructions de comparaison, on peut travailler temporairement sur des variables
locales à la fonction (nommées ici max et min). Cela nous conduit à une fonction de la
forme suivante :
void maxmin (int t[], int n, int * admax, int * admin)
{ int i, max, min ;
max = t[1] ;
min = t[1] ;
for (i=1 ; i
if (t[i] < min) min = t[i] ;
}
*admax = max ;
*admin = min ;
}
Voici un petit exemple de programme d’utilisation de la première fonction :
#include
using namespace std ;
main()
{ void maxmin (int [], int, int &, int &) ;
int t[8] = { 2, 5, 7, 2, 9, 3, 9, 4} ;
int max, min ;
maxmin (t, 8, max, min) ;
cout << "valeur maxi : " << max << "\n" ;
cout << "valeur mini : " << min << "\n" ;
}
Et voici le même exemple utilisant la seconde fonction :
#include
using namespace std ;
main()
{ void maxmin (int [], int, int *, int *) ;
int t[8] = { 2, 5, 7, 2, 9, 3, 9, 4} ;
int max, min ;
maxmin (t, 8, &max, &min) ;
cout << "valeur maxi : " << max << "\n" ;
cout << "valeur mini : " << min << "\n" ;
88
