Максимальный среди отрицательных и минимальный среди положительных элемент в массиве System Array - C#
Формулировка задачи:
Есть вопрос относительно одномерного массива System Array
Есть код программы, которая ищет минимальный положительный и максимальный отрицательный элемент массива:
Вроде пашет верно, но, но, она считает минимальное положительное число верно, тогда и только тогда когда первый элемент массива сам положителен, а если присвоить 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();
// ошибка при присваивании максимального элемента
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();
}
}
}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("Не найдено");