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 et p au clavier représentant respectivement un nombre total t d’étudiants inscrits, et un nombre p 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 :

  1. Lecture des valeurs : Le programme utilise scanf pour lire les valeurs de t et p depuis le clavier.
  2. Validation des valeurs : Le programme vérifie que t est supérieur à zéro et que p est compris entre zéro et t.
  3. Calcul du pourcentage : Le pourcentage est calculé en divisant p par t et en multipliant par 100. Le casting en double est utilisé pour obtenir un résultat en virgule flottante.
  4. Affichage du pourcentage : Le résultat est affiché avec deux décimales de précision en utilisant %.2f dans printf.

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.

Épisode 3