Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
2.7 kB
2
Indexable
Never
 class Program
    {
        static double Metoda1(double[] t1)
        {
            double minimum1 = t1[0], maximum2 = t1[1], trzecia;
            //z trzech liczb próbujemy znaleźć minimum maximum i wartość pomiędzy nimi
            //minimum = pierwsza, maximum = druga
            if (minimum1 > maximum2)
            {
                minimum1 = t1[1];
                maximum2 = t1[0];
            }
            double podejrzana = t1[2];
            if (podejrzana < minimum1)
            {
                trzecia = maximum2;
                maximum2 = minimum1;
                minimum1 = podejrzana; //wartosc najmniejsza
            }
            else
            {
                if (podejrzana < maximum2)
                {
                    trzecia = maximum2;
                    maximum2 = podejrzana;
                }
                else
                    trzecia = podejrzana; //podejrzana<trzecia
            }
            for (int i = 3; i < t1.Length; i++)
            {
                podejrzana = t1[i];
                if (podejrzana < minimum1)
                {
                    trzecia = maximum2;
                    maximum2 = minimum1;
                    minimum1 = podejrzana; 
                }
                else
                {
                    if (podejrzana < maximum2)
                    {
                        trzecia = maximum2;
                        maximum2 = podejrzana;
                    }
                    else
                        if (podejrzana < trzecia)
                        trzecia = podejrzana; 
                }
            }
            return trzecia;
        }
        static void Main(string[] args)
        { /* Napisz metodę double Metoda1(double[] tablica) zwracającą trzecią pod względem wielkości wartość 
           * z tablicy liczb typu double (wartość taką, że tylko dwie wartości w tablicy są od niej mniejsze równe). 
           * Nie należy sortować tablicy. Zademonstruj działanie metody w programie ilustrującym. 
           * Uwaga. Zwracamy trzecią wartość czyli wartość taką, że tylko dwie wartości w tablicy są 
           * od nie mniejsze równe przykładowo: dla tablicy double[] d={1.1, 2.2, 1.1, 3.3} trzecia wartość to 2.2. */
            double[] t1 = new double[] { 1.1, 2.2, 1.1, 3.3 };

            for (int i = 0; i < t1.Length; i++)
                Console.Write(t1[i] + " "); //wyświetlenie całej tablicy - wszystkie wartości

                Console.WriteLine("Trzecia pod względem wielkości wartość to: " + Metoda1(t1));

            Console.ReadKey();
        }
    }
}