//Cambios
//Cambio 1: While loop que pregunta si desea continuar
//Cambio 2: For loop con array que itera por las notas
use std::io;
fn main() {
let mut continuar = true;
while continuar {
// Array para almacenar las notas
let mut notas = [0; 3];
let promedio;
println!("Calcule el promedio de su clase.");
// Cambio 1: For loop para la entrada de las notas
for i in 0..3 {
notas[i] = leer_nota(&format!("Entre nota de examen {}: ", i + 1));
if notas[i] < 0 || notas[i] > 100 {
println!("Entra una nota válida. 0-100");
return;
}
}
// Calcula el promedio de las 3 notas
promedio = (notas.iter().sum::<i32>() / 3) as f32;
// Imprime el promedio de acuerdo a su sigla
if promedio >= 90.0 {
println!("Su promedio de la clase es de A - {}", promedio);
} else if promedio >= 80.0 {
println!("Su promedio de la clase es de B - {}", promedio);
} else if promedio >= 70.0 {
println!("Su promedio de la clase es de C - {}", promedio);
} else if promedio >= 60.0 {
println!("Su promedio de la clase es de D - {}", promedio);
} else {
println!("Su promedio de la clase es de F - {}", promedio);
}
// Cambio 2: Preguntar si desea continuar
println!("¿Desea calcular el promedio de otra clase? (y/n): ");
let mut input = String::new();
io::stdin() //input
.read_line(&mut input)
.expect("Error al leer la entrada");
continuar = match input.trim().to_lowercase().as_str() {
"y" => true,
"n"=> false,
_ => false, //Si es diferente a 'y' y 'n'
}
}
}
// Función para leer una nota y convertirla a entero
fn leer_nota(mensaje: &str) -> i32 {
println!("{}", mensaje);
let mut input = String::new();
io::stdin()
.read_line(&mut input)
.expect("Error al leer la entrada");
input.trim().parse().expect("Por favor, ingrese un número válido")
}