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

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

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

Есть вопрос относительно одномерного массива System Array Есть код программы, которая ищет минимальный положительный и максимальный отрицательный элемент массива:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Massiv_1_Array
{
    class Program
    {
        static void Main(string[] args)
        {
            Random r = new Random();
            const int n = 10;
            int[] a = new int[n];
            Console.WriteLine("Массив: ");
            for (int i = 0; i < a.Length; i++)
            {
                a.SetValue(r.Next(-20, 20), i);
                Console.Write(" " + a.GetValue(i));
 
            }
            Console.WriteLine();
            // ошибка при присваивании максимального элемента
            int max = a[0];

            for (int i = 0; i < a.Length; i++)
 
                if (a[i] > 0 && a[i] < max)
                    max = a[i];

            int min = 0;
 
            for (int i = 0; i < a.Length; i++)
            
                if (a[i] < 0 && a[i] < min)
                    min = a[i];
            
            Console.WriteLine("max: " + max);
            Console.WriteLine("min: " + min);
            Console.ReadKey();
        }
    }
}
Вроде пашет верно, но, но, она считает минимальное положительное число верно, тогда и только тогда когда первый элемент массива сам положителен, а если присвоить max = 0 то при выводе всегда будет max = 0, я не могу понять почему оно так тупо считает А еще, она выводит максимальное отрицательное число по модулю, а как сделать так чтобы оно выводило максимальное отрицательное простое, ведь максимальное отрицательное число это -1, если его нету то любое следующее за ним число.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Massiv_1_Array
{
    class Program
    {
        static void Main(string[] args)
        {
            Random r = new Random();
            const int n = 10;
            int[] a = new int[n];
            Console.WriteLine("Массив: ");
            for (int i = 0; i < a.Length; i++)
            {
                a.SetValue(r.Next(-20, 20), i);
                Console.Write(" " + a.GetValue(i));
 
            }
            Console.WriteLine();
            // ошибка при присваивании максимального элемента
            double max = double.MinValue;
            double min = double.MaxValue;
 
            for (int i = 0; i < a.Length; i++)
 
                if (a[i] < 0 && a[i] > max)
                    max = a[i];

            for (int i = 0; i < a.Length; i++)
            
                if (a[i] > 0 && a[i] < min)
                    min = a[i];
 
            Console.WriteLine("Минимальное среди положительных: " + min, "\n");
            Console.WriteLine("Максимальное среди отрицательных: " + max, "\n");
            Console.ReadKey();
        }
    }
}
Ответ найден, можете закрывать тему

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

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

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


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

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

15   голосов , оценка 4.267 из 5
Похожие ответы