namespace Feladat05_Valasztas { internal class Program { static void Main(string[] args) { Console.WriteLine("=== Osztályképviselő-választás – szavazatszámlálás ==="); Console.WriteLine($"1 - {JeloltNeve(1)}"); Console.WriteLine($"2 - {JeloltNeve(2)}"); Console.WriteLine($"3 - {JeloltNeve(3)}"); Console.WriteLine(); Console.Write("Hány szavazólapot adtak le? "); int szavazolapok = int.Parse(Console.ReadLine()); int elsoJelolt = 0; int masodikJelolt = 0; int harmadikJelolt = 0; int ervenytelen = 0; for (int i = 1; i <= szavazolapok; i++) { Console.Write($"{i}. szavazólap: "); int szavazat = int.Parse(Console.ReadLine()); switch (szavazat) { case 1: elsoJelolt++; break; case 2: masodikJelolt++; break; case 3: harmadikJelolt++; break; default: ervenytelen++; break; } } int ervenyes = elsoJelolt + masodikJelolt + harmadikJelolt; Console.WriteLine(); Console.WriteLine("--- Eredmény ---"); if (ervenyes == 0) { // Arányt nem tudunk számolni, de a darabszámok ilyenkor is érdekesek. Console.WriteLine($"Érvénytelen szavazatok: {ervenytelen} db"); Console.WriteLine($"Érvényes szavazatok száma: {ervenyes} db"); Console.WriteLine("Nem érkezett egyetlen érvényes szavazat sem, a választás eredménytelen."); } else { Kiiras(JeloltNeve(1), elsoJelolt, ervenyes); Kiiras(JeloltNeve(2), masodikJelolt, ervenyes); Kiiras(JeloltNeve(3), harmadikJelolt, ervenyes); Console.WriteLine($"Érvénytelen szavazatok: {ervenytelen} db"); Console.WriteLine($"Érvényes szavazatok száma: {ervenyes} db"); int legtobb = elsoJelolt; if (masodikJelolt > legtobb) legtobb = masodikJelolt; if (harmadikJelolt > legtobb) legtobb = harmadikJelolt; int nyertesekSzama = 0; if (elsoJelolt == legtobb) nyertesekSzama++; if (masodikJelolt == legtobb) nyertesekSzama++; if (harmadikJelolt == legtobb) nyertesekSzama++; Console.WriteLine(); if (nyertesekSzama > 1) { Console.WriteLine($"Holtverseny alakult ki {legtobb} szavazattal a következő jelöltek között:"); if (elsoJelolt == legtobb) Console.WriteLine($"- {JeloltNeve(1)}"); if (masodikJelolt == legtobb) Console.WriteLine($"- {JeloltNeve(2)}"); if (harmadikJelolt == legtobb) Console.WriteLine($"- {JeloltNeve(3)}"); Console.WriteLine("Második fordulóra van szükség."); } else { string gyoztes; if (elsoJelolt == legtobb) gyoztes = JeloltNeve(1); else if (masodikJelolt == legtobb) gyoztes = JeloltNeve(2); else gyoztes = JeloltNeve(3); Console.WriteLine($"A választás győztese: {gyoztes} ({legtobb} szavazat)"); // Abszolút többség: az érvényes szavazatok több mint a fele. if (legtobb * 2 > ervenyes) { Console.WriteLine("A győztes abszolút többséget szerzett."); } else { Console.WriteLine("A győztes nem szerzett abszolút többséget."); } } } } static string JeloltNeve(int kod) { string nev; switch (kod) { case 1: nev = "Kovács Réka"; break; case 2: nev = "Nagy Bence"; break; case 3: nev = "Tóth Dániel"; break; default: nev = "Ismeretlen jelölt"; break; } return nev; } static void Kiiras(string nev, int szavazat, int ervenyes) { double szazalek = szavazat * 100.0 / ervenyes; Console.WriteLine($"{nev}: {szavazat} szavazat ({szazalek:F1}%)"); } } }