Професионална програма
Loading...
+ Нов въпрос
StoyanShopov avatar StoyanShopov 1 Точки

Проблем със задача " 11. Odd / Even Position".

Здравейте пичове, 

имам проблем със задача "11. Odd / Even Position" от "Simple Loops", когато искам да принтирам минималното нечетно и минамалното четно, не става и като пуснах дебъгера, намирами ми ги минималните стойности и после, когато му кажа примерно oddMin = num, не иска да ми го запише... това ми е сорс кода http://pastebin.com/mMYFKu96, някой би ли ми обяснил защо?

Тагове:
0
Programming Basics
i.petk0v avatar i.petk0v 56 Точки
Best Answer

В началото на кода предаваш стойност на всичко " 0 ", а би следвало при Min i Max да е в следния вид:

 

double OddMin = double.MaxValue;
        double OddMax = double.MinValue;  

 double EvenMin = double.MaxValue;
            double EvenMax = double.MinValue;

 

За начало ми се наби на очи това.

Поздрави,

Иван

0
28/12/2016 10:25:24
ThePSXHive avatar ThePSXHive 436 Точки

Идеята за инициализирането с .MaxValue и .MinValue е коректна, затова ще коментирам останалата част от кода:

 

Разположи проверката за 0 в началото, при въвеждането на n. Принципно, проверките за размера на входа винаги са в непосредствена близост до въвеждането му. Това е вярно и за стойностите, когато ги въвеждаш в цикъла. В конкретната ситуация, проблемът е, че ти проверяваш две различни условия с if/else-if конструкция. Например, условието за това въведенатa стойност да е по-малка от минималното четно число е различно от условието същата стойност да е по-голяма от максималното четно число. Няма връзка между тези условия; ако първото е вярно, то и второто може да бъде вярно, и когато няма връзка между отделните условия, всяко от тях трябва да бъде проверено. Това се осъществява само с if. Когато ползваш if/else-if, ако първото условие е истинно, то останалите не биват проверявани, и стойностите на променливите въобще не се променят.

 

P.S. Едно "100/100" решение, но на C#. Допълнителните твърдения са добавени, понеже използвам SharpDeveloper, и в случая нямам привилегията да "задържам" конзолния прозорец без допълнителни инструкции.

0
28/12/2016 15:59:05
StoyanShopov avatar StoyanShopov 1 Точки

Здравейте, 
беше ми развален лаптопа и сега успях да продължа със задачата и стигнах до тук http://pastebin.com/1E84CQ7i  (малко е бъркотия), но в някой от случайте, когато максималните четни/нечетни са отрицателни, винаги ги ми принтира "0"... може ли пак малко помощ, какво трябва да направя?
Благодаря Ви!

0
30/12/2016 11:32:35
g_todorov avatar g_todorov 106 Точки

Здравей,

задачката е интересна и има много начини за решаване. Пускам ти един мой начин, хубавото на който, е че ще ти добави малко нови знания - ползвал съм списъци, а вградените функции са ясни. Списъците вървяха до колкото си спомням заедно с масиви в една лекция и можеш да я намериш от ресурсите тук, но не в бейсик, а в Tech модула (не съм на 100% сигурен). Много ще са ти полезни.

Успех!

http://pastebin.com/4cWN43LK

0