1 Pour s’échauffer

Soit le fragment de programme suivant :

float a = 0.001;
float b = 0.003;
float c, *pa, *pb, *pp;
pa = &a;
*pa *= 2;
pb = &b;
c = 3 * (*pb  *pa);
pp = pa;

Après exécution, quelles sont les valeurs de a, b, c, pa, ∗pa, &∗pa, pb, ∗pb, pp, ∗pp ? Vérifiez vos

réponses en écrivant le programme affichant les différentes valeurs.

NB: pour afficher la valeur d'un pointeur avec printf(), on pourra utiliser le spécificateur de format "%p".

2 Allocation dynamique

Nous souhaitons écrire un programme permettant de faire quelques statistiques pour un ensemble de notes dont le nombre n’est pas connu à l’avance. Le programme devra commencer par demander le nombre de notes à l’utilisateur. Ensuite un tableau de flottants devra être alloué dynamiquement, avant de lire les notes. Le programme affichera ensuite la valeur minimale, la valeur maximale, la moyenne et la médiane des notes. La mémoire allouée devra être libérée avant de quitter le programme.

Rappels

3 Tableaux de tableaux. . .

Pour allouer dynamiquement un tableau à deux dimensions, une solution est de le modéliser

par un tableau de tableaux. Écrire un programme qui :