В одномерном массиве определить местоположение первого и последнего изо всех отрицательных элементов - C#
Формулировка задачи:
еще раз всем привет
подскажите пожалуйста, почему счетчик считает правильно, хотя вроде бы не должен
задание: В одномерном массиве определить местоположение первого и последнего изо всех отрицательных элементов
class Program
{
static void Main(string[] args)
{
int[] array = { -1, 0, 45, -18, 88, -37, 55, 1, 94 };
for (int i = 0; i < array.Length; i++)
Console.Write("{0}\t", array[i]);
Console.WriteLine();
int ind_negfirst = 0;
int ind_neglast = 0;
for (int i = 0; i < array.Length; i++)
{
if (array[i] < 0) ind_neglast = i;
{
for (int j = 0; j < array.Length; j++)
{
if (array[j] < 0)
break;
ind_negfirst = j+1; // [B]вот здесь вроде бы не должен считать[/B]
}
}
}
Console.WriteLine();
Console.WriteLine("Индекс первого отрицательного элемента: {0}", ind_negfirst);
Console.WriteLine("Индекс последнего отрицательного элемента: {0}", ind_neglast);
Console.ReadKey();
}
}
}Решение задачи: «В одномерном массиве определить местоположение первого и последнего изо всех отрицательных элементов»
textual
Листинг программы
class Program
{
static void Main(string[] args)
{
int[] array = {-1, 0, 45, -18, 88, -37, 55, 1, 94 };
for (int i = 0; i < array.Length; i++)
Console.Write("{0}\t", array[i]);
Console.WriteLine();
int ind_negfirst = 0;
int ind_neglast = 0;
for (int i = 0; i < array.Length; i++)
{
if (array[i] < 0)
{
ind_neglast = i;
}
for (int j = 0; j < array.Length; j++)
{
if (array[j] < 0)//Проверяем первый элемент цикла(он ниже 0), потому переходим в конструкцию if
{
break;// Тут внутренний цикл прерывается
}
ind_negfirst = j+1; // [B]вот здесь вроде бы не должен считать[/B]
}
}//Тут начинается новый внешний цикл
Console.WriteLine();
Console.WriteLine("Индекс первого отрицательного элемента: {0}", ind_negfirst);
Console.WriteLine("Индекс последнего отрицательного элемента: {0}", ind_neglast);
Console.ReadKey();
}
}