Задача: Вычисление минимального / максимального значения
Исходник: Максимальное значение массива с помощью маркера, язык: C# [code #92, hits: 7593]
автор: this [добавлен: 05.03.2006]
  1. static float MarkerMax(float[] a)
  2. {
  3. int i = 0, n = a.Length;
  4. float max = a[0];
  5.  
  6. /* Меняем размер массива, чтобы добавить
  7. * в конец элемент a[n], который будет являться
  8. * маркером
  9. */
  10. Array.Resize(ref a, n+1);
  11. while (i < n)
  12. {
  13. max = a[i];
  14. a[n] = max;
  15. i++;
  16. while (a[i] < max) i++;
  17. }
  18. return max;
  19. }
Для введения маркера, т.е. элемента a[n], приходится принудительно менять размер массива методом Array.Resize(), который поддерживается начиная с .NET Framework version 2.0, поэтому будьте осторожны.

Обратите внимание на то, что задача решается без использования оператора if.
Тестировалось на: MS Visual Studio 2005, .NET Framework 2.0

+добавить реализацию