Loading...
thekeymaker1984 avatar thekeymaker1984 2 Точки

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

Здравейте,

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

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

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

Тагове:
0
Programming Basics
supersane avatar supersane 234 Точки

Обхождай с един елемент по-малко, или иначе казано: 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 234 Точки

Е как да го изпуснеш, като проверяваш с това: 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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.