On continue sur un exercice de base de mon cours d’algorithmique. Entretien réalisé le 11/02/2025.
Écrivez un programme en C lisant deux entiers
t
etp
au clavier représentant respectivement un nombre totalt
d’étudiants inscrits, et un nombrep
d’étudiants présents. Faites afficher le pourcentage d’étudiants présents par votre programme avec au moins deux décimales de précision.
Voici un programme en C qui lit deux entiers t
et p
représentant respectivement le nombre total d’étudiants inscrits et le nombre d’étudiants présents, puis affiche le pourcentage d’étudiants présents avec au moins deux décimales de précision :
#include <stdio.h>
int main() {
int t, p;
// Lire les valeurs de t et p depuis le clavier
printf("Entrez le nombre total d'étudiants inscrits (t) : ");
scanf("%d", &t);
printf("Entrez le nombre d'étudiants présents (p) : ");
scanf("%d", &p);
// Vérifier que les valeurs sont valides
if (t <= 0 || p < 0 || p > t) {
printf("Les valeurs entrées ne sont pas valides.\n");
return 1;
}
// Calculer le pourcentage d'étudiants présents
double pourcentage = (double)p / t * 100;
// Afficher le pourcentage avec deux décimales de précision
printf("Le pourcentage d'étudiants présents est : %.2f%%\n", pourcentage);
return 0;
}
Explication du code :
- Lecture des valeurs : Le programme utilise
scanf
pour lire les valeurs det
etp
depuis le clavier. - Validation des valeurs : Le programme vérifie que
t
est supérieur à zéro et quep
est compris entre zéro ett
. - Calcul du pourcentage : Le pourcentage est calculé en divisant
p
part
et en multipliant par 100. Le casting endouble
est utilisé pour obtenir un résultat en virgule flottante. - Affichage du pourcentage : Le résultat est affiché avec deux décimales de précision en utilisant
%.2f
dansprintf
.
Vous pouvez compiler et exécuter ce programme pour voir le résultat.
De nouveau, le vampire a tendance à déclarer des int
et à vérifier après coup qu’ils ne sont pas négatifs.
Je ne vais pas lui faire corriger, on sait qu’il peut.
(Plus précisément : on sait qu’on peut l’amener à corriger en le tenant par la main suffisamment.)
Mais c’est une tendance récurrente, que j’ai noté sur plusieurs exercices, pas tous publiés.
Son explication est structurée et détaillée, il fait le bon élève.
Aucune erreur notable.
On va devoir faire avance rapide sur la feuille de TD pour aller vers des choses plus intéressantes.