Récapitulatif - Synthèse des notes
Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 66 sur 66.
Défi
FacileVous recevrez plusieurs entrées représentant les notes des étudiants. La première entrée est un nombre indiquant combien de notes suivront. Ensuite, vous recevrez ce nombre de valeurs de notes (une par ligne). Traitez ces notes et fournissez un résumé complet.
Exigences :
- Lisez la première entrée (nombre de notes), supprimez les espaces blancs et analysez-la en
i32 - Créez un vecteur vide pour stocker les notes
- Utilisez une boucle pour lire chaque note, supprimez les espaces blancs, analysez-la en
i32et ajoutez-la au vecteur - Calculez la note moyenne (somme de toutes les notes divisée par le nombre de notes)
- Trouvez la note la plus élevée dans le vecteur
- Trouvez la note la plus basse dans le vecteur
- Comptez combien de notes sont réussies (70 ou plus)
- Comptez combien de notes sont en échec (moins de 70)
- Affichez les résultats dans le format exact indiqué ci-dessous
Format de sortie :
- Ligne 1 :
Average: X(où X est la moyenne sous forme d'entier) - Ligne 2 :
Highest: X(où X est la note la plus élevée) - Ligne 3 :
Lowest: X(où X est la note la plus basse) - Ligne 4 :
Passing: X(où X est le nombre de notes réussies) - Ligne 5 :
Failing: X(où X est le nombre de notes en échec)
Entrée :
- Première ligne : Nombre de notes (par exemple,
5) - Lignes suivantes : Valeurs de notes individuelles (par exemple,
85,92,67,78,95)
Sortie :
- Cinq lignes montrant la moyenne, la note la plus élevée, la note la plus basse, le nombre de réussites et le nombre d'échecs
Essayez vous-même
use std::io;
fn main() {
// Lire le nombre de notes
let mut count_input = String::new();
io::stdin().read_line(&mut count_input).expect("Failed to read line");
let count: i32 = count_input.trim().parse().expect("Invalid number");
// Créer un vecteur pour stocker les notes
let mut grades: Vec<i32> = Vec::new();
// Lire chaque note
for _ in 0..count {
let mut grade_input = String::new();
io::stdin().read_line(&mut grade_input).expect("Failed to read line");
let grade: i32 = grade_input.trim().parse().expect("Invalid number");
grades.push(grade);
}
// TODO: Écrivez votre code ci-dessous
// Calculer la moyenne, trouver la plus haute, trouver la plus basse, compter les notes de passage et d'échec
// Afficher les résultats dans le format requis
// println!("Average: {}", average);
// println!("Highest: {}", highest);
// println!("Lowest: {}", lowest);
// println!("Passing: {}", passing_count);
// println!("Failing: {}", failing_count);
}Toutes les leçons de Logic & Flow
1Structures de contrôle avancées
L'expression 'match'Filtrage de plusieurs valeursFiltrage d'intervallesL'expression 'if let'Les boucles en tant qu'expressionsRécapitulatif - Analyseur de commandes simple4Regrouper des données avec les structures
Qu'est-ce qu'une structure ?Aperçu des structuresAccéder aux champs d'une structureStructures mutablesLes structures comme paramètres de fonctionStructures tupleRécapitulatif - Créer une structure Book2Introduction aux vecteurs
Qu'est-ce qu'un vecteur ?Créer un vecteurAjouter des éléments avec pushAccéder aux éléments d'un vecteurItérer sur un vecteurItération mutableSupprimer des élémentsRécapitulatif - Suivi de score basique5Paires clé-valeur avec les Hash Maps
Qu'est-ce qu'une Hash Map ?Créer une Hash MapInsérer des paires clé-valeurAccéder aux valeursParcourir une Hash MapMettre à jour une valeurSupprimer une paireRécapitulatif - Compteur de mots8Projet : Inventaire d'articles simple
Configuration du projetAjouter un articleVérifier le stockVendre un articleAssembler le tout11Défis finaux
Récapitulatif - Éléments uniquesRécapitulatif - Validateur de profil utilisateurRécapitulatif - Synthèse des notes3Liste de tâches en ligne de commande
Configuration du projetAjouter une tâcheAfficher toutes les tâchesSupprimer une tâcheCode final