Професионална програма
Loading...
+ Нов въпрос
bokoto83 avatar bokoto83 1 Точки

Compile time error 01.Tennis Equipment

Здравейте колеги. Имам проблем със задачата https://judge.softuni.bg/Contests/Practice/Index/1538#1 . 01. Tennis Equipment. 

Кодът, който написах ми дава в judge Compile time error. Идеи ? Във Visual Studio няма проблем.

Това е моят код https://pastebin.com/nhg8buvK 

Тагове:
0
Programming Basics with C++ 13/01/2020 19:30:29
bokoto83 avatar bokoto83 1 Точки

Ok. Сам ще си отговоря. По някаква причина judge не ми иска променливата otherЕquipment surprise. Следващият проблем е 90/100 точки. Пренаписах абсолютно същият код на C# и ми дава 100/100.

http://pastebin.com/gLXZKmpX

0
13/01/2020 22:58:09
kolioi avatar kolioi 616 Точки

Проблема е в това, че буквата Е в otherEquipment е написана на кирилица. Майкрософтския компилатор няма проблем с това, но Джадж работи с gcc, а той пищи и се сърди :)

Значи какво се прави в такива случаи - копираш грешката "error: stray '\320' in program" и я търсиш в гугъл. Там хората ти казват, че най-вероятно буквата Е в otherEquipment не е ASCII character. Можеш да се увериш в това като отвориш твоя сорс файл с някой hex editor. И наистина, вместо 45 имаш 415, което е главна буква Е на кирилица  https://www.fileformat.info/info/unicode/char/0415/index.htm

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

int priceForDjoko = totalPrice / 8;
int priceForSponsor = totalPrice - priceForDjoko;

cout << "Price to be paid by Djokovic " << priceForDjoko << endl;
cout << "Price to be paid by sponsors " << priceForSponsor << endl;

четвъртия тест вече работи, но пък първите 2 дават грешка. Ако имаш свободно време, може да си поиграеш малко :)

1
JOHNY avatar JOHNY 196 Точки

Най-смешното е, че:

cout << "Price to be paid by Djokovic " << fixed << setprecision(0) << floor(priceForDjoko) << endl;
cout << "Price to be paid by sponsors " << fixed << setprecision(0) << ceil(priceForSponsor) << endl;

работи. :D

<< fixed << setprecision(0) <<  с #include <iomanip> най-отгоре преодоля тест 4. Без него, а само с floor & ceil тест 4 гърми и дава 90 точки. В такива случаи ми е изключително интересно какви са входните данни за да се произведат фойерверките. ;)

1