Menu
Coddy logo textTech

Ripasso - Riepilogo dei voti

Fa parte della sezione Logica e flusso del percorso Rust di Coddy. Lezione 66 di 66.

challenge icon

Sfida

Facile

Riceverai 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 i32 e 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

Esercitati da solo: Compilatore Rust online