Процедура, которая изменяет входящий массив double путем нормализации (без использования Linq)
Я уже записал код для процедуры, которая изменяет входящий массив значений типа double, нормализуя его. Чтобы нормализовать массив чисел, мне пришлось делить каждое число на максимальное значение в массиве. Тем не менее, мой код заставляет меня реализовать System.Linq
Вот мой код:
public void Test9(double[] numbers)
{
double MaximumNumber = numbers.Max();
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = numbers[i] / MaximumNumber;
}
}
Мой вопрос, как я могу достичь того же решения без реализации using System.Linq;
в верхней части программы.
2 ответа
Решение
Сначала просмотрите массив и получите максимальное значение (убедитесь, что сначала в нем есть элементы, поэтому проверьте numbers.Length > 0
):
double max = numbers[0];
for (int i = 1; i < numbers.Length; i++)
{
if (numbers[i] > max)
{
max = numbers[i];
}
}
Просто найдите максимум, перебирая массив
public void Test9(double[] numbers)
{
// Find the maximum without linq
double maxNumber = double.MinValue;
for (int i = 0; i < numbers.Length; i++)
{
if(numbers[i] > maxNumber)
maxNumber = numbers[i];
}
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = numbers[i] / maxNumber;
}
}