Loading...

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

Losko avatar Losko 69 Точки

Passion Days

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

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

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