/* © MATTO MATTI 2017 http://mattomatti.com/pl/a0058 napisane przy użyciu Visual Studio Community 2015 2017-09-28 v 1.0 */ using System; namespace plcode1cs { class Program { static int podajPozycje(int wartosc, int[] lista, int dl) { for (int i = 0; i < dl; i++) if (wartosc >= lista[i]) return i; return dl; } static int kNajwiekszaWartosc(int k, int[] lista, int n) { int[] temp = new int[k]; for (int i = 0; i < k; i++) temp[i] = int.MinValue; for (int i = 0; i < n; i++) { int poz = podajPozycje(lista[i], temp, k); if (poz < k && lista[i] != temp[poz]) { for (int j = k - 2; j >= poz; j--) temp[j + 1] = temp[j]; temp[poz] = lista[i]; } } return temp[k - 1]; } static void Main(string[] args) { Console.Write("Podaj długość tablicy:\n n = "); int n = Convert.ToInt32(Console.ReadLine()); int[] lista = new int[n]; Console.WriteLine("Podaj kolejne elementy tablicy:"); for (int i = 0; i < n; i++) lista[i] = Convert.ToInt32(Console.ReadLine()); Console.Write("Który największy element podać?\n k = "); int k = Convert.ToInt32(Console.ReadLine()); int wynik = kNajwiekszaWartosc(k, lista, n); if (wynik == int.MinValue) { Console.WriteLine("Nie istnieje {0} element", k); } else { Console.WriteLine("Szukany element to {0}", wynik); } Console.ReadKey(); } } }