Каждому положительному элементу массива, должен предшествовать отрицательный элемент
Задача стоит такая: Всем ли положительным элементам массива, предшествуют отрицательные? Нужно просмотреть три массива и напечатать на экраны названия тех массивов, где данное условие не соблюдено.
Я написал метод генерации случайными числами массив
public static int[] GenerationArray()
{
Console.Write("Введите длину массива: ");
int lenght = int.Parse(Console.ReadLine());
collection = new int[lenght];
Console.WriteLine("В каком диапазоне заполнить массив?");
Console.Write("От: ");
int indexAt = int.Parse(Console.ReadLine());
Console.Write("До: ");
int indexEnd = int.Parse(Console.ReadLine());
Random random = new Random();
for (int i = 0; i < lenght; i++)
{
collection[i] = random.Next(indexAt, indexEnd);
}
return collection;
}
Нужно написать метод, который и проверяет данное условие
public static bool Check(int[] collection)
{
for (int i = 0; i < collection.Length; i++)
{
for (int j = 0; i < collection.Length; j++)
{
if (collection[i] < 0 && collection[j] > 0)
return true;
}
}
return false;
}
Итого: Метод говорит, что всё хорошо, если в массиве уже есть одно отрицательно число, мне же нужно сделать так, чтобы он сказал норм, если элементы массива идут примерно так:
- [-1, 2, -12, 23, -2, 1] - это норм и удовлетворяет условию
- [-1, -2, 2, 23, 49, -2, 2] - такой массив не удовлетворяет условию
Ответы (1 шт):
код писал из головы и не проверял.
Тестируй)
public static bool Check(int[] collection)
{
if ( collection[0] >= 0 )
return false;
for (int i = 1; i < collection.Length; i++)
{
if ( collection[i] >= 0 && collection[i-1] >= 0)
return false;
}
return true;
}
только здесь нету проверки на пустой массив если что - неясно как должна вести себя программа - это тру или фалс. В даном коде - будет исключение Out of range.
А еще я не совсем уверен как обрабатывать ситуцию 0. Ноль это положительное число? Должна ли предшествовать перед 0 минусовая ячейка?