Menu
Coddy logo textTech

Revisão - Sumarizador de Notas

Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 66 de 66.

challenge icon

Desafio

Fácil

Você receberá múltiplas entradas representando notas de alunos. A primeira entrada é um número indicando quantas notas virão a seguir. Então você receberá essa quantidade de valores de notas (um por linha). Processe essas notas e forneça um resumo abrangente.

Requisitos:

  • Leia a primeira entrada (número de notas), remova os espaços em branco e converta para i32
  • Crie um vetor vazio para armazenar as notas
  • Use um loop para ler cada nota, remova os espaços em branco, converta para i32 e adicione ao vetor
  • Calcule a média das notas (soma de todas as notas dividida pela contagem)
  • Encontre a nota mais alta no vetor
  • Encontre a nota mais baixa no vetor
  • Conte quantas notas são de aprovação (70 ou superior)
  • Conte quantas notas são de reprovação (abaixo de 70)
  • Imprima os resultados no formato exato mostrado abaixo

Formato de Saída:

  • Linha 1: Average: X (onde X é a média como um número inteiro)
  • Linha 2: Highest: X (onde X é a nota mais alta)
  • Linha 3: Lowest: X (onde X é a nota mais baixa)
  • Linha 4: Passing: X (onde X é a contagem de notas de aprovação)
  • Linha 5: Failing: X (onde X é a contagem de notas de reprovação)

Entrada:

  • Primeira linha: Número de notas (ex: 5)
  • Linhas seguintes: Valores individuais das notas (ex: 85, 92, 67, 78, 95)

Saída:

  • Cinco linhas mostrando a média, a maior nota, a menor nota, a contagem de aprovações e a contagem de reprovações

Experimente você mesmo

use std::io;

fn main() {
    // Ler o número de notas
    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");
    
    // Criar um vetor para armazenar as notas
    let mut grades: Vec<i32> = Vec::new();
    
    // Ler cada nota
    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: Escreva seu código abaixo
    // Calcular a média, encontrar a maior nota, encontrar a menor nota, contar notas aprovadas e reprovadas
    
    
    
    // Exibir os resultados no formato exigido
    // println!("Average: {}", average);
    // println!("Highest: {}", highest);
    // println!("Lowest: {}", lowest);
    // println!("Passing: {}", passing_count);
    // println!("Failing: {}", failing_count);
}

Todas as lições de Logic & Flow