Wiederholung - Noten-Zusammenfassung
Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 66 von 66.
Aufgabe
EinfachSie erhalten mehrere Eingaben, die Schülernoten darstellen. Die erste Eingabe ist eine Zahl, die angibt, wie viele Noten folgen werden. Dann erhalten Sie entsprechend viele Notenwerte (einer pro Zeile). Verarbeiten Sie diese Noten und erstellen Sie eine umfassende Zusammenfassung.
Anforderungen:
- Lesen Sie die erste Eingabe (Anzahl der Noten), entfernen Sie Leerzeichen und parsen Sie diese zu
i32 - Erstellen Sie einen leeren Vektor, um die Noten zu speichern
- Verwenden Sie eine Schleife, um jede Note zu lesen, Leerzeichen zu entfernen, sie zu
i32zu parsen und sie dem Vektor hinzuzufügen - Berechnen Sie die Durchschnittsnote (Summe aller Noten geteilt durch die Anzahl)
- Finden Sie die höchste Note im Vektor
- Finden Sie die niedrigste Note im Vektor
- Zählen Sie, wie viele Noten bestanden sind (70 oder höher)
- Zählen Sie, wie viele Noten nicht bestanden sind (unter 70)
- Geben Sie die Ergebnisse in dem unten gezeigten exakten Format aus
Ausgabeformat:
- Zeile 1:
Average: X(wobei X der Durchschnitt als Ganzzahl ist) - Zeile 2:
Highest: X(wobei X die höchste Note ist) - Zeile 3:
Lowest: X(wobei X die niedrigste Note ist) - Zeile 4:
Passing: X(wobei X die Anzahl der bestandenen Noten ist) - Zeile 5:
Failing: X(wobei X die Anzahl der nicht bestandenen Noten ist)
Eingabe:
- Erste Zeile: Anzahl der Noten (z. B.
5) - Folgende Zeilen: Einzelne Notenwerte (z. B.
85,92,67,78,95)
Ausgabe:
- Fünf Zeilen, die den Durchschnitt, den höchsten Wert, den niedrigsten Wert, die Anzahl der bestandenen und die Anzahl der nicht bestandenen Noten anzeigen
Probier es selbst
use std::io;
fn main() {
// Anzahl der Noten einlesen
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");
// Einen Vektor zum Speichern der Noten erstellen
let mut grades: Vec<i32> = Vec::new();
// Jede Note einlesen
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: Schreiben Sie Ihren Code unten
// Durchschnitt berechnen, Höchstwert finden, Tiefstwert finden, bestandene und nicht bestandene Noten zählen
// Die Ergebnisse im erforderlichen Format ausgeben
// println!("Average: {}", average);
// println!("Highest: {}", highest);
// println!("Lowest: {}", lowest);
// println!("Passing: {}", passing_count);
// println!("Failing: {}", failing_count);
}Alle Lektionen in Logic & Flow
1Fortgeschrittener Kontrollfluss
Der 'match'-AusdruckAbgleichen mehrerer WerteBereiche abgleichenDer 'if let'-AusdruckSchleifen als AusdrückeRückblick – Einfacher Befehls-Parser4Daten gruppieren mit Structs
Was ist ein Struct?Übersicht über StructsZugriff auf Struct-FelderVeränderbare StructsStructs als FunktionsparameterTupel-StructsZusammenfassung – Ein Buch-Struct erstellen2Einführung in Vektoren
Was ist ein Vektor?Einen Vektor erstellenElemente mit push hinzufügenZugriff auf Vektor-ElementeÜber einen Vektor iterierenVeränderliche IterationElemente entfernenZusammenfassung – Einfacher Score-Tracker5Schlüssel-Wert-Paare mit Hash Maps
Was ist eine Hash Map?Erstellen einer Hash MapEinfügen von Schlüssel-Wert-PaarenZugreifen auf WerteIterieren über eine Hash MapAktualisieren eines WertesEntfernen eines PaaresZusammenfassung – Wortzähler8Projekt: Einfaches Artikelinventar
Projekt-SetupEinen Artikel hinzufügenLagerbestand prüfenEinen Artikel verkaufenAlles zusammenfügen11Abschluss-Herausforderungen
Wiederholung - Einzigartige ElementeWiederholung - Benutzerprofil-ValidatorWiederholung - Noten-Zusammenfassung3Kommandozeilen-To-Do-Liste
Projekt-SetupEine Aufgabe hinzufügenAlle Aufgaben anzeigenEine Aufgabe entfernenFinaler Code