Loading...
Losko avatar Losko 69 Точки

Passion Days

Колеги помагаите... Повече от 60/100 не мога да направя. Една от грешките ми идва при "%"  и не мога да разбера защо. Като резултат излиза визуално, но не и според judge.

else if (action[i] == '%')
                    {
                        money -=  money / 2;
                        purchases++;

Тагове:
0
Programming Fundamentals
KrasimirPetkov avatar KrasimirPetkov 328 Точки
else if (action[i]=='%')
{
    if (money > 0)
    {
        money /= 2;
        purchases++;
    }
}

Ако не помогне, може да качиш цялото си решение да се види какво се случва.

Успех!

2
Losko avatar Losko 69 Точки

80/100 

0
KrasimirPetkov avatar KrasimirPetkov 328 Точки

Погледнах решението ти. Извинявай, ако се бъркам, но мисля че при теб ако първия input не е "mall.Enter", програмата просто си продължава към края. Пробвай да го отделиш в един while цикъл.

while (input!="mall.Enter")
{
    input = Console.ReadLine();
}

След това вече започни да четеш инструкциите с input=Console.ReadLine(). После в друг while цикъл добави частта, която обработва данните.

while (input!="mall.Exit")
{
    // Тук поставяш обработването на данните
    input = Console.ReadLine();
}

Засега това ми направи впечатление. Ако самите изчисления вътре са ти добре (което не съм гледал обстойно, тъй като при 80/100 точки би следвало да е ОК), трябва да свърши работа.

Ето и решението ми, за да видиш как съм го структурирал (не е най-доброто, тъй като съм го писал отдавна): http://pastebin.com/kN8xvJ5a

Ако това не помогне, ще го разгледам по-подробно, но щом изкарва 80/100 не би трябвало да има груби грешки.

Успех със задачата!

2
Losko avatar Losko 69 Точки

Така, като добавих още 1 цикъл зада не спира програмата ако не получи на втори ред mall.Enter  станаха 90/100

0
borislav9212 avatar borislav9212 745 Точки

С тази информация която си задал, малко трудно ще можем да ти помогнем. Напиши от коя задача е, от коя лекция е, така ще трябва два часа да я търсим къде е задачата. Даи код в http://pastebin.com/, да видим къде имаш грешки в кода.

0
14/06/2016 16:41:38
Losko avatar Losko 69 Точки

http://pastebin.com/5gvN2zZe
Задачата е от изпит. 
https://judge.softuni.bg/Contests/163/Programming-Basics-Exam-21-February-2016
Вместо breack; сложих continue; и стана 70/100 

0
Losko avatar Losko 69 Точки

http://pastebin.com/H8Ka08KY
90/100..... 
Имам решение 100/100 пред мен, но не мога да си намеря грешката 

0
Losko avatar Losko 69 Точки

Добре направих ги 100/100.... проблема е, че за поръчките ползвам byte да ги броя.... като го смених с инт стана 100/100..
 

  • The number of strings between the enter and exit command will be in the range [1 - 20];
  • The number of characters in the string representing the actions are in the range [1 - 20];
    Аз това го разбирам, че покупките не могат да са повече от 20 ?? Бъркам ли?

    Извинете за спама ... то са 20 х 20......
1
14/06/2016 18:08:06
KrasimirPetkov avatar KrasimirPetkov 328 Точки
  • The number of strings between the enter and exit command will be in the range [1 - 20];
  • The number of characters in the string representing the actions are in the range [1 - 20];

Това означава, че максималният брой ще е 20 стринга с до 20 символа вътре. Тоест: 20 х 20 = 400, което надхвърля обхвата на byte [0-255].

1
14/06/2016 18:08:37
borislav9212 avatar borislav9212 745 Точки

Щом с byte не става, а с int става, значи byte се препълва той е до 255.

0
KrasimirPetkov avatar KrasimirPetkov 328 Точки

Losko, съвет относно променливите, които ползваш.

Дори и да имаш нещо, чийто обхват е по-малък от int, използвай int (за по-големите числа, разбира се си има други типове от сорта на long, ulong и BigInteger). Разликата в паметта (специално за програмите, които ние пишем) не е особено съществена, но можеш да си спестиш доста главоболия (особено ако са включени математически операции).

Например, опитай се да напишеш следната програмка:

byte a = 3;
byte b = 3;
short c = a + b;

Веднага ще получиш грешка във Visual Studio: Cannot implicitly convert type 'int' to 'short'. An explicit conversion exists (are you missing a cast?)

Това се получава, защото променливите автоматично се convert-ват към 32-битови или 64-битови цели числа Int32/Int64, когато се изпълняват дадени математически операции. За да се получи, кодът трябва да се промени на short c = (short)(a + b); Така работата с 8-битови цели числа (byte, sbyte) и 16-битови цели числа (short, ushort) става излишно трудна (по мое мнение) и за да ти е по-спокойно, направо използвай int

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