Menu
Coddy logo textTech

Powtórka – podsumowanie ocen

Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 66 z 66.

challenge icon

Wyzwanie

Łatwy

Otrzymasz wiele danych wejściowych reprezentujących oceny uczniów. Pierwsza dana wejściowa to liczba określająca, ile ocen zostanie podanych. Następnie otrzymasz tyle wartości ocen (po jednej w każdym wierszu). Przetwórz te oceny i przedstaw ich pełne podsumowanie.

Wymagania:

  • Odczytaj pierwszą daną wejściową (liczbę ocen), usuń białe znaki i sparsuj ją jako i32
  • Utwórz pusty wektor do przechowywania ocen
  • Użyj pętli, aby odczytać każdą ocenę, usunąć białe znaki, sparsować ją jako i32 i dodać do wektora
  • Oblicz średnią ocen (sumę wszystkich ocen podzieloną przez ich liczbę)
  • Znajdź najwyższą ocenę w wektorze
  • Znajdź najniższą ocenę w wektorze
  • Policz, ile ocen jest zaliczających (70 lub więcej)
  • Policz, ile ocen jest niezaliczających (poniżej 70)
  • Wypisz wyniki dokładnie w formacie pokazanym poniżej

Format wyjściowy:

  • Wiersz 1: Average: X (gdzie X to średnia jako liczba całkowita)
  • Wiersz 2: Highest: X (gdzie X to najwyższa ocena)
  • Wiersz 3: Lowest: X (gdzie X to najniższa ocena)
  • Wiersz 4: Passing: X (gdzie X to liczba ocen zaliczających)
  • Wiersz 5: Failing: X (gdzie X to liczba ocen niezaliczających)

Dane wejściowe:

  • Pierwszy wiersz: liczba ocen (np. 5)
  • Kolejne wiersze: pojedyncze wartości ocen (np. 85, 92, 67, 78, 95)

Wynik:

  • Pięć wierszy zawierających średnią, najwyższą i najniższą ocenę oraz liczbę ocen zaliczających i niezaliczających

Spróbuj swoich sił

use std::io;

fn main() {
    // Wczytaj liczbę ocen
    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");
    
    // Utwórz wektor do przechowywania ocen
    let mut grades: Vec<i32> = Vec::new();
    
    // Wczytaj każdą ocenę
    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: Napisz poniżej swój kod
    // Oblicz średnią, znajdź najwyższą i najniższą ocenę oraz policz oceny zaliczające i niezaliczające
    
    
    
    // Wyświetl wyniki w wymaganym formacie
    // println!("Average: {}", average);
    // println!("Highest: {}", highest);
    // println!("Lowest: {}", lowest);
    // println!("Passing: {}", passing_count);
    // println!("Failing: {}", failing_count);
}

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Rust online