static void Main(string[] args) { int numEscaños; Console.WriteLine("Introduzca el número de escaños a repartir:"); numEscaños = Int32.Parse(Console.ReadLine()); Partido a = new Partido(); Partido b = new Partido(); Partido c = new Partido(); Console.WriteLine("Introduzca el nombre del primer partido:"); a.Nombre = Console.ReadLine(); Console.WriteLine("Introduce los votos del partido {0}:", a.Nombre); a.Votos = Int32.Parse(Console.ReadLine()); Console.WriteLine("Introduzca el nombre del segundo partido:"); b.Nombre = Console.ReadLine(); Console.WriteLine("Introduce los votos del partido {0}:", b.Nombre); b.Votos = Int32.Parse(Console.ReadLine()); Console.WriteLine("Introduzca el nombre del tercer partido:"); c.Nombre = Console.ReadLine(); Console.WriteLine("Introduce los votos del partido {0}:", c.Nombre); c.Votos = Int32.Parse(Console.ReadLine()); get_mayor(a, b, c, numEscaños); Console.WriteLine("Escaños del partido {0}: {1}", a.Nombre, a.Escaños); Console.WriteLine("Escaños del partido {0}: {1}", b.Nombre, b.Escaños); Console.WriteLine("Escaños del partido {0}: {1}", c.Nombre, c.Escaños); Console.Read(); }
static void get_mayor(Partido a, Partido b, Partido c, int numEscaños) { Dictionary<string, int>[] matriz = new Dictionary<string, int>[numEscaños]; for (int i = 0; i < numEscaños; i++) { matriz[i] = new Dictionary<string, int>(); } for (int i = 0; i < numEscaños; i++) { matriz[i][a.Nombre] = a.Votos / (i + 1); } for (int i = 0; i < numEscaños; i++) { matriz[i][b.Nombre] = b.Votos / (i + 1); } for (int i = 0; i < numEscaños; i++) { matriz[i][c.Nombre] = c.Votos / (i + 1); } string[] resultado = new string[2]; string partido = ""; int indice = 0; for (int j = 0; j < numEscaños; j++) { int num_mayor = 0; for (int i = 0; i < matriz.Length; i++) { if (matriz[i][a.Nombre] > num_mayor) { num_mayor = matriz[i][a.Nombre]; partido = a.Nombre; indice = i; } if (matriz[i][b.Nombre] > num_mayor) { num_mayor = matriz[i][b.Nombre]; partido = b.Nombre; indice = i; } if (matriz[i][c.Nombre] > num_mayor) { num_mayor = matriz[i][c.Nombre]; partido = c.Nombre; indice = i; } } if (partido == a.Nombre) { a.Escaños += 1; } else if (partido == b.Nombre) { b.Escaños += 1; } else if (partido == c.Nombre) { c.Escaños += 1; } Console.WriteLine("Escaño {0} para...{1}", j + 1, partido); matriz[indice][partido] = 0; } }