Resumen: Rastreador de puntuación básico
Parte de la sección Logic & Flow del Journey de Rust de Coddy — lección 14 de 66.
Desafío
FácilRecibirás dos entradas: primero, una lista de puntuaciones de exámenes separadas por comas, y segundo, una puntuación para añadir. Crea un vector a partir de las puntuaciones iniciales, añade la nueva puntuación, calcula el promedio de todas las puntuaciones e imprime los resultados.
Requisitos:
- Lee la primera entrada que contiene puntuaciones separadas por comas (por ejemplo,
85,92,78) - Divide la cadena por comas y elimina los espacios en blanco (trim) de cada token individual antes de convertirlo a un entero (por ejemplo, usa
.trim()en cada elemento después de dividir) - Crea un vector mutable a partir de estas puntuaciones
- Lee la segunda entrada y conviértela en un entero (elimina los espacios en blanco primero)
- Usa
.push()para añadir la nueva puntuación al vector - Calcula el promedio de todas las puntuaciones en el vector
- Imprime el número total de puntuaciones
- Imprime la puntuación promedio (como un entero)
Entrada:
- Primera línea: Enteros separados por comas que representan las puntuaciones iniciales (por ejemplo,
85,92,78) - Segunda línea: Un entero que representa la nueva puntuación a añadir
Salida:
- Primera línea: El número total de puntuaciones
- Segunda línea: La puntuación promedio (como un entero, truncado)
Nota: Llama siempre a .trim() en toda la línea de entrada y en cada token de puntuación individual después de dividir por comas. Las cadenas de entrada pueden contener espacios en blanco invisibles o caracteres de nueva línea que causarán un error (panic) al analizar si no se eliminan.
Pruébalo tú mismo
use std::io;
fn main() {
// Leer las puntuaciones separadas por comas
let mut scores_input = String::new();
io::stdin().read_line(&mut scores_input).expect("Failed to read line");
// Leer la nueva puntuación para añadir
let mut new_score_input = String::new();
io::stdin().read_line(&mut new_score_input).expect("Failed to read line");
// TODO: Escribe tu código abajo
// 1. Dividir scores_input por comas y convertir a enteros
// 2. Crear un vector mutable a partir de estas puntuaciones
// 3. Convertir new_score_input a un entero
// 4. Añadir la nueva puntuación al vector
// 5. Calcular el promedio de todas las puntuaciones
// Imprimir el número total de puntuaciones
// println!("{}", total_scores);
// Imprimir la puntuación promedio
// println!("{}", average);
}Todas las lecciones de Logic & Flow
1Flujo de control avanzado
La expresión 'match'Coincidencia de múltiples valoresCoincidencia de rangosLa expresión 'if let'Bucles como expresionesResumen - Analizador de comandos simple4Agrupando datos con Structs
¿Qué es un Struct?Visión general de los StructsAcceso a los campos de un StructStructs mutablesStructs como parámetros de funcionesStructs de tuplaResumen - Crear un Struct de Libro7Manejo de errores con 'Result'
¿Qué es un 'Result'?Uso de 'match' con 'Result'is_ok() e is_err()Atajos: unwrap y expectEl operador de signo de interrogación '?'Parsing de Strings a númerosResumen - Función de división segura10Closures y funciones anónimas
¿Qué es un Closure?Definir un Closure simpleClosures con parámetrosCapturar el entornoResumen - Closure sumador simple2Introducción a los vectores
¿Qué es un vector?Crear un vectorAñadir elementos con pushAcceder a los elementos de un vectorIterar sobre un vectorIteración mutableEliminar elementosResumen: Rastreador de puntuación básico5Pares clave-valor con Hash Maps
¿Qué es un Hash Map?Crear un Hash MapInsertar pares clave-valorAcceder a los valoresIterar sobre un Hash MapActualizar un valorEliminar un parRepaso: Contador de palabras8Proyecto: Inventario simple de artículos
Configuración del proyectoAgregar un artículoVerificar el stockVender un artículoUniendo todo3Lista de tareas en la línea de comandos
Configuración del proyectoAñadir una tareaVer todas las tareasEliminar una tareaCódigo final