Loading...
kr056 avatar kr056 64 Точки

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

Ако си написал някакъв код можеш да го постеш в pastebin.com и за да се види къде е проблема.

0
DeyanAltanov avatar DeyanAltanov 6 Точки

Ами мислех, че се решава с while цикъл(започвам с while($n != 'start')), но в конзолата като въведа 'start', цикъла си продължава.

0
27/10/2018 14:24:51
DeyanAltanov avatar DeyanAltanov 6 Точки

https://pastebin.com/PL8Pn2MT

0
kr056 avatar kr056 64 Точки

Значи не променяш стойноста на $n в края на while цикъла и той си продължава.

Мисля че ти трябва  

$n=readLine();

преди while цикъла и преди края му също.

 

0
DeyanAltanov avatar DeyanAltanov 6 Точки

Да преди while цикъла съм създал променливата $n, както и променливата $sum = 0.

0
DeyanAltanov avatar DeyanAltanov 6 Точки

" преди края му също " -> това оправи нещата, благодаря много! Просто не го знаех.

0
DeyanAltanov avatar DeyanAltanov 6 Точки

42/100. Сега отново се чупи. При вход 1 -> Start -> Nuts ги купува, въпреки, че 2>1.
https://pastebin.com/aW7YXxCL

0
kr056 avatar kr056 64 Точки

Това се получава защото в switch-a за поръчките,първо правиш проверката $price<=$sum,а чак след това прибавяш цената на продукта към $price и така винаги ще влиза в if-a.

Първо увеличи $price но само с "=",защото с "+=" няма да задаваш нова,а ще я увеличаваш всеки път.

case 'Water':

$price = (float)PRODUCT_PRICE; 

if ($price <= $sum)
 {
   //CODE IF PRODUCT PRICE IS LOWER THAN SUM OR EQUAL TO SUM
 }
else
 {
   //CODE IF PRODUCT PRICE IS BIGGER THAN SUM
 }

Също така когато if-a ти е "<= или >="  няма нужда от else if,защото остава само един друг случей.

0
28/10/2018 09:09:54
DeyanAltanov avatar DeyanAltanov 6 Точки

85/100. Интересното е, че единствената грешка, която ми дава е при input -> 0.5, 0.2, 0.1, Start, Soda = Not enough money. Но като въведа -> 0.5, 0.1, 0.2 се получава. Lol?

 

https://pastebin.com/0JVW9BFX

0
28/10/2018 10:54:51
kr056 avatar kr056 64 Точки

Това е заради флоатинг поинт числата,те като цяло са проблемни,а в php-то май само float е налично.

Проблема е от там не при теб,като цяло излиза че 0.7+0.1 не е равно на 0.8 laugh

 

Можеш да го фикснеш като смениш содата на 0.7+0.1.

  case 'Soda':
            $price = 0.7+0.1;
            if ($price <= $sum)
            {
                $sum -= (float)0.7+0.1;
                printf('Purchased %s', strtolower($m));
                echo PHP_EOL;
            }
            else
            {
                echo 'Sorry, not enough money';
                echo PHP_EOL;
            }break;

Така минава 100/100.yes

0
28/10/2018 18:33:59
DeyanAltanov avatar DeyanAltanov 6 Точки

Много благодаря! Жив и здрав!

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