Пример #1
0
        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();
        }
Пример #2
0
        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;

            }
        }