Loading...
borislav9212 avatar borislav9212 745 Точки

Simple Loops - 11. Odd / Even Position

Колеги някой, може ли да удари едно рамо. Закъсах на тази задача, ето това накодих до момента http://pastebin.com/BZKPCXU3

Напишете програма, която чете n числа и пресмята сумата, минимума и максимума на числата на четни и нечетни позиции (броим от 1). Когато няма минимален / максимален елемент, отпечатайте “No”. Примери:

вход

                                                         изход

 

0

OddSum=0, OddMin=No, OddMax=No, EvenSum=0, EvenMin=No, EvenMax=No

 

вход

                                            изход

6

2

3

5

4

2

1

OddSum=9, OddMin=2, OddMax=5,  EvenSum=8, EvenMin=1, EvenMax=4

Тагове:
-1
Programming Basics 09/04/2016 14:07:48
vancho avatar vancho 430 Точки

Ами не ти е вярна логиката за :

                    oddSum = array.Sum();
                    oddMin = array.Min();
                    oddMax = array.Max();

и за:

                    evenSum = array.Sum();
                    evenMin = array.Min();
                    evenMax = array.Max();

По скоро трябва да направиш: oddSum += array[i]; ако е нечетно и така и за четно.

А oddMin = array.Min(); и другите подобни по този начин не въшат нищо. По скоро ако ги вкараш предварително входа в масив и тогава ще работят по този начин. Или може да си направиш два List<int> (List защото може да не знаеш точната бройка на четните и нечетните), в единия събираш нечетните, числа а в другия четните и тогава им задаваш на съответния лист .Min() и .Max() и т.н...

 

Но по принцип се препоръчва да не ползваш сега в началото готовите функции за .Min(), .Max() и Sum().

а ти сам да си го напишеш, примерно за МИН:

int min = int.MaxValue();

for -> цъкъл по нечетния лист

вътре във фора:

if (числото < min)

{

мин = числото;

}

така ще ти даде най-малкото число във min, аналогично и за останалите, като за max -> int max = int.MinValue();

 

0
09/04/2016 14:29:19
ArmenPotourlyan+deleted! avatar ArmenPotourlyan+deleted! 488 Точки

Пробвай с два масива - единия за четните, другия за нечетните. Трябва да съобразиш колко трябва да са големи в случай, че n e нечетно число. Също така можеш да изнесеш извикването за сумата, максимума и минимума извън цикъла. Няма смисъл да ги викаш, докато не си прочел всичките елементи.
 

1
borislav9212 avatar borislav9212 745 Точки

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

0
aaaivaylo avatar aaaivaylo 16 Точки

http://pastebin.com/5EDQ5Nbj

Ето и от мен едно. Като цяло с лист нещата ми се получиха доста по-лесно и хубаво, отколкото с масивите...

1
borislav9212 avatar borislav9212 745 Точки

След 8 часа мъчене я реших най-наккрая http://pastebin.com/xzbKSWni

Само не разбирам,защо като проверяваме в" if  " за odd позиция, в тялото му правим изчисленията за even, а не за odd. Аз ли не мога да схвана нещо или в условието има грешка. Ще се радвам ако някои ми обясни.

Благодаря.

-1
H.Stoyanov avatar H.Stoyanov 115 Точки

Ами елементарно е, проверяваме дали числото е четно и ако е четно го добавяме към четните и ако не е ( няма нужда да проверяваме дали е нечетно, понеже имаме само цели четни или нечетни числа) го добавяме към нечетните.

Има и по-елементарна и за мен по-слесна логика и не изисква масиви и кода е по-кратък.

Взимаш числото от конзолата в произволна променлива. Проверяваш числото дали е чено. От там съотвено дали е четно или нечетно го добавяме към съответната сума. Сравняваме го с до момента записаните стойности за максимално и минимално число и ако е по-голямо (по-малко) го избираме за текущо максимално/минимално число.

1
Nikola_Andreev avatar Nikola_Andreev 671 Точки

Ами защото for цикъла започва от нула и дефакто нулевата позиция ти е първа, първата втора и т.н.Може да направиш цикъла от 1 до <=array.Lenght и тогава да ги изчисляваш нормално, а не на обратно. Малко е объркващо така както е написано.

1
09/04/2016 23:03:29
embetsa avatar embetsa 1 Точки

Може ли някой да ми обясни защо OddMin = 2, при положение че 2 е четно.Каде е логиката защото съм си направил задачата обаче числото две отива при четните както е правилно а тук отива при нечетните??? 

0
kiso_blg avatar kiso_blg 57 Точки

Гледа се реда на числата и техните позиции като се започва от 1, а не самото число. 2 е първото т.е. на позиция 1 -> Odd. 3 е второто -> Even и т.н. Изписани в линия ще ги разбереш по-лесно.

1 2 3 4 5 6

2 3 5 4 2 1

 

1
embetsa avatar embetsa 1 Точки

Това вече е друго нещо! Благодаря за разяснението.Всичко е на 6 вече.

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