Софтуерно Инженерство
Loading...
+ Нов въпрос
thekeymaker1984 avatar thekeymaker1984 2 Точки

Обхождане на елементи на масив

Здравейте,

опитвам се да реша задачата за дължината на най-дългата нарастваща поредица от последователни елементи в редицата от числа.

Въвеждам n числа в масив и после се опитвам да сравнявам всяко едно със следващото чрез for (int j = 0; j <=array.Length-1; j++)  и if (array[j] > array[j + 1]), но проблем ми е че излизам извън масива  чрез j+1  и ми дава грешка.

Как да обходя масива и да сравнявам всеки един елемент със следващия го без дами да дава грешка.

Тагове:
supersane avatar supersane 233 Точки

Обхождай с един елемент по-малко, или иначе казано: for (int j = 0; j <=array.Length-2; j++)

0
thekeymaker1984 avatar thekeymaker1984 2 Точки

Ама така май ще изпусна последния елемент.

Опитвам се ето така да го направя. макар че засега имам грешка в логиката :)

for (int j = 0; j <=array.Length-2; j++)

{

if (array[j] > array[j + 1])

{

count++;

}

else

{

list.Add(count);

count = 0;

}

list.Add(count);

}

Console.WriteLine(list.Max());

 

}

0
supersane avatar supersane 233 Точки

Е как да го изпуснеш, като проверяваш с това: if (array[j] > array[j + 1]), и когато стигнеш array.Lenght-2 това, което удебелих ще вземе array.Lenght-1, което е последния елемнт.

0
IskrenPenev avatar IskrenPenev 177 Точки

След като си зададеш for-цикъла, може веднага под него да сложиш While - цикъл - While (j != (array.lenght -1)) и тогава да продължиш с if - конструкцията ; Другият вариант е когато задаваш for - цикъла да въведеш < array.length -1 , a не <=.

3
Mozez avatar Mozez 55 Точки

Да колегата Пенев е прав, правилния начин е i < array.length -1. Това <= е грешно понеже ако масивът ти е 5 елемента ще се състои от индекси от 0 до 4. Когато i стане равно на lenght -1 ще вземе 4 тия индех и ще иска до го сравни с 5тия, който обаче излиза извън дължината на масива.

1
15/03/2016 20:17:13
thekeymaker1984 avatar thekeymaker1984 2 Точки

Благодаря, определено вече не излизам извъм масива! А сега ще опитам да реша задачата!

0