/* Fichier Pointeur1.cpp Paramètres transmis via pointeurs Explications : le 16 mai */ #include #include // pour setw et setprecision using namespace std; void continuer() { cout << endl << endl << "Appuyez sur une lettre suivie de Entree " ; char lettre; cin >> lettre ; cout << endl << endl; } // une manière de permuter le contenu de deux variables : ici via pointeurs void permuter(int * p1, int * p2) { int tempo = *p1; *p1 = *p2 ; *p2 = tempo; } void afficher(float taille[], int nbPers) { cout.setf(ios::fixed); cout.setf(ios::showpoint); cout << "\nContenu du tableau des tailles : " << endl; cout << "indice taille[i]" << endl ; for(int i = 0 ; i < nbPers; i++) cout << setw(5) << i << ") " << setw(8) << setprecision(2) << taille[i] << endl; cout << endl << endl ; } void determiner(float taille[], int nbPers, float * ptrMax, float * ptrMin) { float mini, maxi ; mini = maxi = taille[0]; for(int i = 1 ; i < nbPers; i++) { if ( taille[i] < mini ) mini = taille[i]; if (taille[i] > maxi) maxi = taille[i] ; } *ptrMax = maxi; *ptrMin = mini ; } int main() { int age1 = 32, age2 = 18; cout << "Avant de permuter, age 1 = " << age1 << " et age2 = " << age2 << endl; permuter(&age1, &age2); cout << "Apres de permuter, age 1 = " << age1 << " et age2 = " << age2 << endl; float taille[] = { 1.72, 1.68, 1.53, 1.81, 1.75 }; int nbPers = sizeof(taille) / sizeof(int) ; afficher(taille, nbPers); float maxTaille, minTaille ; // sur l'appel, on envoie 2 adresses pour recevoir de résultats // => sur l'en-tête de la fonction, c'est deux pointeurs pour ces deux adresses determiner(taille, nbPers, &maxTaille, &minTaille); cout << "La taille maximale : " << setw(6) << setprecision(2) << maxTaille << " metre" << endl; cout << "La taille minimale : " << setw(6) << setprecision(2) << minTaille << " metre" << endl; continuer(); return 0; } /* Exécution : Avant de permuter, age 1 = 32 et age2 = 18 Apres de permuter, age 1 = 18 et age2 = 32 Contenu du tableau des tailles : indice taille[i] 0) 1.72 1) 1.68 2) 1.53 3) 1.81 4) 1.75 La taille maximale : 1.81 metre La taille minimale : 1.53 metre Appuyez sur une lettre suivie de Entree */