Софтуерно Инженерство
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
kolioi avatar kolioi 612 Точки

Проблема е в това, че буквата Е в 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 дават грешка. Ако имаш свободно време, може да си поиграеш малко :)

0
JOHNY avatar JOHNY 195 Точки

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

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 точки. В такива случаи ми е изключително интересно какви са входните данни за да се произведат фойерверките. ;)

0