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:

EntradaSalida
3 9 59
-7 -2 -9-2
4 4 44

Tu solución

Program.cs — 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.