Ripasso - Riepilogo dei voti
Fa parte della sezione Logica e flusso del percorso Rust di Coddy. Lezione 66 di 66.
Sfida
FacileRiceverai più input che rappresentano i voti degli studenti. Il primo input è un numero che indica quanti voti seguiranno. Poi riceverai altrettanti valori di voto (uno per riga). Elabora questi voti e fornisci un riepilogo completo.
Requisiti:
- Leggi il primo input (il numero di voti), rimuovi gli spazi bianchi e convertilo in
i32 - Crea un vettore vuoto in cui memorizzare i voti
- Usa un ciclo per leggere ogni voto, rimuovere gli spazi bianchi, convertirlo in
i32e aggiungerlo al vettore - Calcola il voto medio (la somma di tutti i voti divisa per il conteggio)
- Trova il voto più alto nel vettore
- Trova il voto più basso nel vettore
- Conta quanti voti sono sufficienti (70 o più)
- Conta quanti voti sono insufficienti (meno di 70)
- Stampa i risultati nel formato esatto mostrato qui sotto
Formato dell'output:
- Riga 1:
Average: X(dove X è la media come numero intero) - Riga 2:
Highest: X(dove X è il voto più alto) - Riga 3:
Lowest: X(dove X è il voto più basso) - Riga 4:
Passing: X(dove X è il conteggio dei voti sufficienti) - Riga 5:
Failing: X(dove X è il conteggio dei voti insufficienti)
Input:
- Prima riga: numero di voti (ad es.,
5) - Righe successive: singoli valori dei voti (ad es.,
85,92,67,78,95)
Output:
- Cinque righe che mostrano la media, il voto più alto, quello più basso, il conteggio dei voti sufficienti e quello dei voti insufficienti
Provalo tu
use std::io;
fn main() {
// Leggi il numero di voti
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");
// Crea un vettore per memorizzare i voti
let mut grades: Vec<i32> = Vec::new();
// Leggi ogni voto
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: Scrivi il tuo codice qui sotto
// Calcola la media, trova il voto più alto e quello più basso, conta i voti sufficienti e insufficienti
// Mostra i risultati nel formato richiesto
// println!("Average: {}", average);
// println!("Highest: {}", highest);
// println!("Lowest: {}", lowest);
// println!("Passing: {}", passing_count);
// println!("Failing: {}", failing_count);
}Tutte le lezioni di Logica e flusso
1Flusso di controllo avanzato
L'espressione 'match'Corrispondenza di più valoriCorrispondenza di intervalliL'espressione 'if let'Cicli come espressioniRipasso - Parser di comandi semplice4Raggruppare i dati con le struct
Che cos'è una struct?Panoramica sulle structAccedere ai campi delle structStruct mutabiliStruct come parametri di funzioneStruct tuplaRiepilogo - Creare una struct Book2Introduzione ai vettori
Che cos'è un vettore?Creare un vettoreAggiungere elementi con pushAccedere agli elementi di un vettoreIterare su un vettoreIterazione mutabileRimuovere elementiRiepilogo - Tracker dei punteggi di base5Coppie chiave-valore con mappe hash
Che cos'è una mappa hash?Creare una mappa hashInserire coppie chiave-valoreAccedere ai valoriScorrere una mappa hashAggiornare un valoreRimuovere una coppiaRiepilogo - Contatore di parole8Progetto: inventario semplice degli articoli
Configurazione del progettoAggiungere un articoloControllare le scorteVendere un articoloMettere tutto insieme11Sfide finali
Ripasso - Elementi uniciRipasso - Validatore del profilo utenteRipasso - Riepilogo dei voti3Lista di attività da riga di comando
Configurazione del progettoAggiungere un'attivitàVisualizzare tutte le attivitàRimuovere un'attivitàCodice finaleEsercitati da solo: Compilatore Rust online