Loading...
ver4eto avatar ver4eto 23 Точки

задача 4.Vacation WhileLoops

Здравейте,

 

може ли някой да ми каже къде ми е грешката в кода на задачата от упражненията за WhileLoops,всички тестове излизат, всички мои проверки, които си направих също.....И Judge продължава да ми дава само 70/100?

-кодът е: https://pastebin.com/SkSKx3Bq

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

От конзолата се четат:

  • Пари нужни за екскурзията - реално число в интервала [1.00.. .25000.00]
  • Налични пари - реално число в интервала [0.00... 25000.00]

След това многократно се четат по два реда:

  • Вид действие – текст с възможности "spend" и "save".
    • Сумата, която ще спести/похарчи - реално число в интервала [0.01… 25000.00]
    •  

Програмата трябва да приключи при следните случаи:

  • Ако 5 последователни дни Джеси само харчи, на конзолата да се изпише:
  • "You can't save the money."
  • "{Общ брой изминали дни}"
  • Ако Джеси събере парите за почивката на конзолата се изписва:
  • "You saved the money for {общ брой изминали дни} days."

 

 

Благодаря предварително

Тагове:
0
Programming Basics 09/10/2018 14:28:18
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки
  • Ако 5 последователни дни Джеси само харчи, на конзолата да се изпише:

имаш 5 последователни,а при теб е 5 дни общо ако харчи не си нулираш брояча за spentdays. Реално ако ти подам вход

save spend spend spend spend save spend ти ще изпишеш че не може да спести а това не е коректно.И ше приключиш програмата. 

Трябва ти една проверка при четенето на входа и ако не е spend примерно да си нулираш spenddays.

0
09/10/2018 14:44:12
ver4eto avatar ver4eto 23 Точки

Не, имам нулиране на spent days:

  1. if (action== "save")

  2.               {

  3.                    daysSpent = 0;

 

 

 

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

Хм. Не съм я видял. Я  пробваи с decimal че тов е с пари. А double и decimal закръглят с малки разлики.и тая проверка else if(action="spend") e просто if не else if

0
09/10/2018 15:48:19
ver4eto avatar ver4eto 23 Точки

Не, пак същото и с decimal......

0
GeorgiPaunov avatar GeorgiPaunov 265 Точки

Първо: else if (action = spend) трябва да ти е вързан за if (action = save);

Второ: ако не е събрала парите трябва да отпечаташ days, а не daysSpent.

Така трябва ще ти даде 100/100.

0
ver4eto avatar ver4eto 23 Точки

Най-накрая стана!Благодаря за помощта! :)

0
NikolayNeykov92 avatar NikolayNeykov92 617 Точки

Здравей, проверката за това дали Джеси има достатъчно пари  if (availableMoney >= moneyForExcurtion)

трябва да я вложиш в  if (action == "save") защото един от тестовете подава като входни данни парите на Джеси да са достатъчни за почивката, но като първо команда ти подава spend и трябва да изваждаш пари от наличните, а не да приключиш програмата и да принтираш резултата.

Другата грешка е при недостатъчните пари result = "You can't save the money." + Environment.NewLine + $"{daysSpent}"; от задачата се иска общия брой изминали дни, а не дните които е харчила (ако влезеш в тази проверка винаги са 5) Ето кода ти с направените промени: https://pastebin.com/FPgWxajD

0
09/10/2018 16:11:58
ver4eto avatar ver4eto 23 Точки

Проработи , благодаря :)

0
Didocha avatar Didocha 9 Точки

Да, и аз се измъчих малко на тая задача. Защо и е на Джеси да събира пари след като тя има достатъчно ? , си задавам въпрос.

Точно Тest#6 прави това. Judge иска дори да има достатъчно пари за ваканция на входа да може да се изхарчат или съберат повече и чак тогава да се провери дали са достатъчни. Което значи че проверката за достатъчно пари трябва да се прави задължително вътре в while цикъла, след всички други операции. А и цикъла да е непрекъснат (true).

Judge си е Judge но малко на ръба на справедливоста, защото ако Джеси има парите за ваканция, нямаше да се налага да и помагаме... Даже и задачата нямаше да съществува :)

 

0
ver4eto avatar ver4eto 23 Точки

Замислих се и аз над този сценарий, но реших, че ми е малко невероятен и затова не го включих....изводът: Judje винаги крие някоя невероятна изненада в задния джоб :))))

0
prohause avatar prohause 356 Точки

https://pastebin.com/NC8hiyAb

Ето вашият код коригиран. Имаше една грешка, че когато хачри 5 последователни дни вие щечатахте колко последователни дни е харчила а не общо дните. Другата корекция за мене е техническа грешка от страна на преподавателите. Правят проверка дали парите стигат единственно и само вътре във добавянето на парите.

0
ver4eto avatar ver4eto 23 Точки

Тази задача ми обърка логиката тотално :))))Ще трябва да се науча явно кое алогично действие Judge е подготвил за изненада :))) Благодаря за помощта :)

0
prohause avatar prohause 356 Точки

Аз съм 3 година в СофтУни и измъчи мен. Предтавям си какво ви е на Вас. Judge няма вина. Такива тестове са вкарани. Грешката е в лигиката на този който е писал задачата. 

0
ver4eto avatar ver4eto 23 Точки

Добре, че има такива като вас, да ни помагате, че иначе.....Изглежда страшно....:)

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