Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
2.6 kB
3
Indexable
Never
class Program
    {
        static double Metoda1(double[] t1)
        {
           double minimum1 = t1[0], indeksminimum1 = 0;
            for (int i = 1; i < t1.Length; i++)
            {
                if (minimum1 >= t1[i])
                {
                    minimum1 = t1[i]; //szukamy najmniejszej liczby
                    indeksminimum1 = i;
                    i++;
                }
                else
                i++;
            }//mamy znalezione minimum, więc szukamy teraz drugiego pod względem wielkości minimum
            double minimum2 = t1[0], indeksminimum2 = 0;
            for (int j = 0; j < t1.Length; j++)
            {
                if (indeksminimum1 != j)
                {
                    if (minimum2 >= t1[j])
                    {
                        minimum2 = t1[j]; //szukamy drugiej najmniejszej liczby
                        indeksminimum2 = j;
                        j++;
                    }
                    else
                        j++;
                }
            }
            double trzeciawartosc = t1[0];
                for (int k = 0; k < t1.Length; k++)
                {
                    if ((k != indeksminimum1) && (k != indeksminimum2))
                    {
                        if (trzeciawartosc >= t1[k])
                        {
                            t1[k] = trzeciawartosc;
                            k++;
                        }
                        else
                            k++;
                    }
                }
            return trzeciawartosc;

        }
        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={4.4, 2.2, 1.1, 3.3} trzecia wartość to 2.2. */
            double[] t1 = new double[] { 1.1, 2.2, 4.4, 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();
        }
    }
}