Nadesłany przez Kasia Pastwa, 29 listopada 2013 20:27
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.Pobierz pełne rozwiązanie.
Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
dominanta.cs:
//Szukanie dominanty - elementu wystepujacego najczesciej //www.algorytm.org using System; using System.Linq; //biblioteki potrzebne do obsługi zastosowanych funkcji namespace Dominanta { class Program { //metoda do pokazywania każdej tablicy static public void ShowTable(int[] tab) { Console.Write("\t{"); foreach (int i in tab) { Console.Write(i + " , "); } Console.Write("}"); Console.WriteLine(); } //program static void Main(string[] args) { //tablica w ktorej szukamy dominanty int[] tab = { 2, 2, 4, 4, 1, 3, 4, 2, 5, 1, 3, 1, 4, 4 }; //tablica wartosci int[] L = { }; //tablica liczby wystapien int[] W = { }; //zlicz wystepowanie poszczegolnych liczb w tablicy tab for (int i = 0; i < tab.Length; i++) { //zapytanie czy zawiera - można też zrobić w pętli if (L.Contains(tab[i])) { int index = Array.IndexOf(L, tab[i]); W[index] += 1; } else { int l = L.Length + 1; int w = W.Length + 1; Array.Resize(ref L, l); //zmiana wielkości tablicy Array.Resize(ref W, w); L[l - 1] = tab[i]; //dodanie nowej wartości W[w - 1] = 1; } } //poszukaj liczbe najczesciej wystepujaca int max = 0; int indexmax = 0; for (int i = 0; i < W.Length; i++) { if (W[i] > max) { max = W[i]; indexmax = i; } } //wypisz wynik Console.WriteLine("Dany jest zbiór liczb: "); ShowTable(tab); Console.WriteLine("Lista liczb występujących w zbiorze: "); ShowTable(L); Console.WriteLine("Występowanie liczb w zbiorze: "); ShowTable(W); Console.WriteLine("Dominantą jest liczba " + L[indexmax] + ", pojawia się {0} razy.", max);// różne metody zapisu danych Console.ReadLine(); } } }