Профил
Loading...
+ Нов въпрос
dddinkobakalov avatar dddinkobakalov 22 Точки

Решение на задача Odd / Even Position от лекцията Simple Loops

Здравейте,

след няколко опита да реша тази задача, получавам най- много 20% в Judge системата. Омотавам се и не мога да разбера как трябва правилно да се направи и изгради решението. Ако някой е усппял да я направи лесно и може да качи едно решение с разяснение ще съм благодарен.

Тагове:
dddinkobakalov avatar dddinkobakalov 22 Точки

Ето да кача един от опитите ми за решение, който е грешен и непълен: http://pastebin.com/gZ9eyTsk

0
svetljo avatar svetljo 27 Точки

Здравей, разгледай това решение: http://pastebin.com/xKWuhALW

0
dddinkobakalov avatar dddinkobakalov 22 Точки

Много ти  благодаря за бързата реакция. Сега ще го разгледам внимателно, за да видя къде точно са грешките ми.

0
ZornitsaSerbezova avatar ZornitsaSerbezova 454 Точки

Първата ти цел трябва да е да получиш верни решения във Visual Studio и след това да постваш задачата в Judge, На теб решението ти не работи и във Visual Studio. Виж къде получаваш грешни отговори и се опитай да редактираш програмата, така че да ги даде верни. Ако те затруднява на пръв поглед да разбереш къде ти е проблема, се научи да дебъгваш. Много е лесно.

0
14/07/2016 20:17:53
dddinkobakalov avatar dddinkobakalov 22 Точки

Да, разбира се, така е. Аз не постигнах успешно решение и след като не успях да измисля нищо, реших да попитам тук, защото има хора с повече опит. Иначе сега като видях по-горе решение усетих къде логиката ми не е на ниво. Не ползвам дебъг все още, трябва при тези задачки да започна да го ползвам и да видя какви са неговите възможности. Благодаря ти за съветите.

0
ZornitsaSerbezova avatar ZornitsaSerbezova 454 Точки

Основният ти проблем е, че не трябва да ползваш else if при проверка за по-голямо и по-малко число, защото така при изпълнено условия на if, ти изключваш условието на else if, а ти трябва да проверяваш и двата случая. Т.е. Трябва да използваш два if-а, вместо if и else if.

ето тук:

                    EvenSum += num;
                    if (num <= EvenMin)
                    {
                        EvenMin = num;
                    }
                    else if (num >= EvenMax)
                    {
                        EvenMax = num;
                    }

Else if се изпълнява ако не е изпълнено условието на if.

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

0
15/07/2016 08:05:53
dddinkobakalov avatar dddinkobakalov 22 Точки

Много ти благодаря за решението. Ще го пригледам внимателно.

0
dimitrow97 avatar dimitrow97 1 Точки

http://pastebin.com/JXmBgMrM
Ето ти едно решение и от мен. Написал съм коментари разяснявайки, кое какво прави. Дано съм помогнал. 

0
dddinkobakalov avatar dddinkobakalov 22 Точки

Благодаря и на теб. Хубаво е, че има разяснения. Това ще ми е от полза.

0
borislav9212 avatar borislav9212 745 Точки

Ето и от мен едно решение с масив и тернарен оператор вместо иф - елсе конструкция. -> http://pastebin.com/6tsCmZVX

0
Ivvelichkova avatar Ivvelichkova 7 Точки

Здравейте,и аз имамнужда от помощ,но ако някой може да разясни какво оплесквам,важно ми е да знам.Готови решения има много,,интересува ме какво аз не знам,а много съм се забатачила  
:) Благодаря предварително
ето кода   http://pastebin.com/S7wNxzH2

0
dddinkobakalov avatar dddinkobakalov 22 Точки

Здравейте, присъединявам се и аз към това искане. Нека някой да обясни нещата, за да ги разберат повече хора, които имат нужда освен от решение и от едно хубаво и подробно разяснение.

0
desiko avatar desiko 1 Точки

if (numss < oddMax)

                {

                    oddMin = numss;

                }
Всички проверки са ти грешни.Проверяваш с максимално, а присвояваш към минимално и обатното.

0
Ivvelichkova avatar Ivvelichkova 7 Точки

Смених местата на odd/even и ,да,бях сменила Мин и Макс,оправих ги ,но пак е боза:
http://pastebin.com/3ANTd8Jk

не знам защо не смята sumEven дори...

0
bepcho avatar bepcho 1 Точки

Със стабилно закъснение, едно решение и от мен :)

http://pastebin.com/Ts2Pm7eW

Не видях някой да е използвал кейсове.

0
karaD avatar karaD 1 Точки

Здравейте, вижте още едно подобно решение с if/else конструкция.

http://pastebin.com/shaTaU8B

0