Revisão - Sumarizador de Notas
Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 66 de 66.
Desafio
FácilVocê 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
i32e 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
1Fluxo de Controle Avançado
A Expressão 'match'Correspondência de Múltiplos ValoresCorrespondência de IntervalosA Expressão 'if let'Loops como ExpressõesRecapitulação - Parser de Comandos Simples4Agrupando Dados com Structs
O que é uma Struct?Visão Geral de StructsAcessando Campos de uma StructStructs MutáveisStructs como Parâmetros de FunçãoTuple StructsRecapitulação - Criando uma Struct Book2Introdução a Vetores
O que é um Vetor?Criando um VetorAdicionando Elementos com pushAcessando Elementos do VetorIterando sobre um VetorIteração MutávelRemovendo ElementosRecapitulação - Rastreador de Pontuação Básico5Pares Chave-Valor com Hash Maps
O que é um Hash Map?Criando um Hash MapInserindo Pares Chave-ValorAcessando ValoresIterando sobre um Hash MapAtualizando um ValorRemovendo um ParRecapitulação - Contador de Palavras8Projeto: Inventário Simples de Itens
Configuração do ProjetoAdicionando um ItemVerificando o EstoqueVendendo um ItemJuntando tudo11Desafios Finais
Revisão - Itens ÚnicosRevisão - Validador de Perfil de UsuárioRevisão - Sumarizador de Notas3Lista de Tarefas via Linha de Comando
Configuração do ProjetoAdicionando uma TarefaVisualizando Todas as TarefasRemovendo uma TarefaCódigo Final