Principiante · if/else + casos límite
Máximo de tres
Lee tres enteros e imprime el mayor. Parece trivial — lo interesante son los casos límite: entrada toda negativa y empates.
Problema
Entrada: una línea con tres enteros a b c (−10⁹ ≤ cada uno ≤ 10⁹).
Salida: una línea con el máximo de los tres.
Ejemplo:
| Entrada | Salida |
|---|---|
3 9 5 | 9 |
-7 -2 -9 | -2 |
4 4 4 | 4 |
Tu solución
Entrada personalizada para "Probar mi entrada"
La corrección se ejecuta por completo en tu navegador contra pruebas ocultas. Tu código se guarda localmente mientras escribes. Ctrl+Enter corrige.
¿Atascado? Pistas
Pista 1 — un comienzo tentador y equivocado
Inicializar int max = 0; falla la prueba toda negativa: la respuesta real −2 es menor que 0. Inicializa desde los datos (max = a;), nunca con un número mágico.
Pista 2 — el patrón del máximo corriente
Empieza con max = a;, luego if (b > max) max = b; y if (c > max) max = c;. Esto se extiende a un millón de valores — por eso vale la pena interiorizarlo.
Solución (¡inténtalo primero!)
string[] partes = Console.ReadLine().Split(' ');
int a = int.Parse(partes[0]);
int b = int.Parse(partes[1]);
int c = int.Parse(partes[2]);
int max = a;
if (b > max) max = b;
if (c > max) max = c;
Console.WriteLine(max);
// la versión de una línea: Math.Max anida, los empates no dan problema
string[] partes = Console.ReadLine().Split(' ');
int max = Math.Max(int.Parse(partes[0]), Math.Max(int.Parse(partes[1]), int.Parse(partes[2])));
Console.WriteLine(max);
Los empates no necesitan código especial: usar > (no >=) conserva el valor anterior, que de todos modos es igual al siguiente. Siguiente: Contar los dígitos.