Максимальный среди отрицательных и минимальный среди положительных элемент в массиве System Array - C#

Узнай цену своей работы

Формулировка задачи:

Есть вопрос относительно одномерного массива System Array Есть код программы, которая ищет минимальный положительный и максимальный отрицательный элемент массива:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Massiv_1_Array
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. Random r = new Random();
  13. const int n = 10;
  14. int[] a = new int[n];
  15. Console.WriteLine("Массив: ");
  16. for (int i = 0; i < a.Length; i++)
  17. {
  18. a.SetValue(r.Next(-20, 20), i);
  19. Console.Write(" " + a.GetValue(i));
  20. }
  21. Console.WriteLine();
  22. // ошибка при присваивании максимального элемента
  23. int max = a[0];
  24.  
  25. for (int i = 0; i < a.Length; i++)
  26. if (a[i] > 0 && a[i] < max)
  27. max = a[i];
  28.  
  29. int min = 0;
  30. for (int i = 0; i < a.Length; i++)
  31. if (a[i] < 0 && a[i] < min)
  32. min = a[i];
  33. Console.WriteLine("max: " + max);
  34. Console.WriteLine("min: " + min);
  35. Console.ReadKey();
  36. }
  37. }
  38. }
Вроде пашет верно, но, но, она считает минимальное положительное число верно, тогда и только тогда когда первый элемент массива сам положителен, а если присвоить max = 0 то при выводе всегда будет max = 0, я не могу понять почему оно так тупо считает А еще, она выводит максимальное отрицательное число по модулю, а как сделать так чтобы оно выводило максимальное отрицательное простое, ведь максимальное отрицательное число это -1, если его нету то любое следующее за ним число.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Massiv_1_Array
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. Random r = new Random();
  13. const int n = 10;
  14. int[] a = new int[n];
  15. Console.WriteLine("Массив: ");
  16. for (int i = 0; i < a.Length; i++)
  17. {
  18. a.SetValue(r.Next(-20, 20), i);
  19. Console.Write(" " + a.GetValue(i));
  20. }
  21. Console.WriteLine();
  22. // ошибка при присваивании максимального элемента
  23. double max = double.MinValue;
  24. double min = double.MaxValue;
  25. for (int i = 0; i < a.Length; i++)
  26. if (a[i] < 0 && a[i] > max)
  27. max = a[i];
  28.  
  29. for (int i = 0; i < a.Length; i++)
  30. if (a[i] > 0 && a[i] < min)
  31. min = a[i];
  32. Console.WriteLine("Минимальное среди положительных: " + min, "\n");
  33. Console.WriteLine("Максимальное среди отрицательных: " + max, "\n");
  34. Console.ReadKey();
  35. }
  36. }
  37. }
Ответ найден, можете закрывать тему

Решение задачи: «Максимальный среди отрицательных и минимальный среди положительных элемент в массиве System Array»

textual
Листинг программы
  1. if (max != double.MinValue)
  2.      Console.WriteLine(max);
  3. else
  4.      Console.WriteLine("Не найдено");

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.267 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы