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

08.Travelling Nested Loops C#

Условие: 

8. Пътуване
Ани обича да пътува и иска тази година да посети няколко различни дестинации. Като си избере дестинация,
ще прецени колко пари ще й трябват за да отиде до там и ще започне да спестява. Когато е спестила
достатъчно, ще може да пътува.
От конзолата всеки път ще се четат първо дестинацията и минималния бюджет, който ще е нужен за
пътуването . След това ще се четат няколко суми, които Ани спестява като работи и когато успее да събере достатъчно за
пътуването, ще заминава, като на конзолата трябва да се изпише:
"Going to {дестинацията}!"
Когато е посетила всички дестинации, които иска, вместо дестинация ще въведе "End" и програмата ще
приключи.

 

Това е решението ми: https://pastebin.com/qnUW1y3Y

дава ми 70/100 с няколко Runtime errors и не знам какво съм объркал, тъй като нулевите тестове минават правилно.

Може ли някой да ми помогне?

Тагове:
kostanikolov avatar kostanikolov 43 Точки
Best Answer

https://pastebin.com/4gjs9b7g

Ето това е моето решение, като въпросът е, че можеш да получиш "End" преди да си събрал парите за дадена дестинация и програмата да приключи без да си посетил даденото място. Така по този начин въвеждаш "End" върху int.parse и програмата ти гърми. Другата уловка е, че трябва сумите да са double.

 

P.S.

https://pastebin.com/HcNfe8Zy - Това е твоето решение преработено.

1
15/07/2018 22:59:06
kolioi avatar kolioi 567 Точки

Интересно, това минава със 100/100, а това взема само 90/100.

0
kostanikolov avatar kostanikolov 43 Точки

Ами не знам, гледам, че на С++ гърми един тест за време. Забелязах също така, че решението на @boris2t също минава без проверка за това дали парите са събрани или не са, за дадената дестинация. Само трябва сумите да са double.

0
kolioi avatar kolioi 567 Точки

Ами там е работата, че ако имаше такъв случай (недостатъчно пари за някое пътуване), програмата щеше да изпуши, защото във вътршния цикъл ще прочетем стринг (следващата дестинация или END) и като се опитаме да го парснем - бум! laugh Така че, такава проверка е абсолютно ненужна, както се вижда от кода който съм дал.

А кода на C++ е същия, само входните и изходните операции са по-различни. Нямам идея откъде идва забавянето, най-вероятно от настройките на компилатора.

Между другото, Graduation pt.3 също има грешни тестове и минават само половината. А Пирамида от числа може да се реши само с един цикъл и няма нужда от вложени цикли https://pastebin.com/dD7p6r0D

0
ivan09 avatar ivan09 0 Точки

Здравейте,

 

И аз си блъсках главата час+.. взимах само 90/100 на C++

без да мога да разбера защо, и при мен така с часовници..

но не е свърано с комплилатора или проблем с някои от loops

вашите примери ми помогнаха,

разликата която виждам C# (100/100) vs C++(90/100) във вашия код,

е че чете цялата линия за разлика от C++

Та реших да пробвам с getline()

и вече ми дава 100/100

въпреки че в примерите за стрингове са само по една цяла дума без space,

явно judge пуска тестове и за имена на дестинации с повече от една дума.

Но error-te който дава са тотал no sence..

Никаква подсказка не дава какво може да е проблема

Та направи си решението с getline() вместо с cin

и трябва да е ОК

0
13/06/2019 06:58:20
Yolito avatar Yolito 8 Точки

https://pastebin.com/bhqkckqN 

 

Това е моето решение. Като и на мен ми даваше 70/100 докато не смених int с double.

0
Ljubo6 avatar Ljubo6 22 Точки

И аз много се чудех когато имах 70/100.Установих ,че при проверката  if (money >= moneyNeeded)  е проблема,по конкретно ако мmoney = 0.Taka , че след редакция проработи следният код:

https://pastebin.com/0Zu49kUV

1
DimityrDimitrow avatar DimityrDimitrow 0 Точки

Използвай getline() за входа за дестинация и в края на цикъла (след всички cin, които си използвал) сложи един cin.ignore() да ти почисти/ игнорира реда, за да може следващото getline() да не прочете празен string.

 

0
Saikor avatar Saikor 14 Точки

Ето го моето решение. При променливи с "int" judge дава 70/100 и 3 Runtime error. Ако променливите са "double" получаваме 100/100.     

https://pastebin.com/MA8RJAf2

0
danieloff avatar danieloff 1 Точки

Ха! Много интерестно колеги, мен ме обърка условието. Аз го разбрах, че трябва да изпишем дестинацийте след като сме свършили с въвеждането на данните и сме въвели End и сътворих това решение https://pastebin.com/ABzw5yUF , което знам че не е нито елегантно нито много правилно но сработи 100/100.   А след като погледнах и вашите решения разбрах също че Judge не проверява случай в който парите не достигат за някое пътуване(щом моето сработи).

0
19/11/2018 13:30:24