Please help me with the task: Find maximum in the array

Не можу знайти помилки, хелп пліз!

(Subscription Required):

Call a method GetNumbersFromConsole that reads a count value of double, and then reads count values from the console into a double array. Find the maximum of the values in the array and print “Max is: {number}” to the console. For example:
>3
>1.12
>-2.333
>399.76
Max is: 399.76

Here is my code:


namespace Arrays
{
   class MaxInArray
   {
       public static void Main(string[] args)
       {
           double[] numbers = GetNumbersFromConsole();

           double max = numbers[0];

           for (int i = 0; i < numbers.Length; ++i)

               if (numbers[i] > max)
               {
                   numbers[i] = max;
                   Console.WriteLine($"Max is: {max}");
               }


       }

       static double[] GetNumbersFromConsole()
       {
           int count = int.Parse(Console.ReadLine());
           double[] result = new double[count];

           for (int i = 0; i < count; ++i)
           {
               result[i] = double.Parse(Console.ReadLine());
           }

           return result;
       }
   }
}

  1. for (int i = 0; i < numbers.Length; ++i) - тут в кінці крапка з комою загубилися
  2. for (int i = 0; i < numbers.Length; ++i) - для цього лупа відсутні обидві фігурні дужки {}
  3. numbers[i] = max; - присвоюємо навпаки. Потрібно max = numbers[i];
1 Like
  1. for (int i = 0; i < numbers.Length; ++i) - тут в кінці крапка з комою загубилися

на справді тут крапка з комою не потрібні в кінці, і тут все вірно

  1. for (int i = 0; i < numbers.Length; ++i) - для цього лупа відсутні обидві фігурні дужки {}

Теоретично, це не помилка. Мова C# дозволяє бути досить “vague” стосовно {}. У випадку, коли після циклу нема {} буде виконана лише одна наступна дія. Оскільки наступна дія це if statement - він (і внутрішня умова) буде виконана.

Практично ж, я в своїх командах вважаю що це помилка. Стилістично, код в якому іноді є, а іноді нема {} досить важко читати. В данному випадку, на мою думку, відсутність {} з подальшим if statement погіршує читання\розуміння коду.

  1. numbers[i] = max; - присвоюємо навпаки. Потрібно max = numbers[i];

підтримую!

і на останок:
в умові задачі, скільки разів треба вивести у консоль “Max is: …”? А скільки разів виводить у консоль ваше рішення?

Дякую!) Вирішилося)