История
Версия для печати

Архив форума

Василий Кочнев 16.05.2006 22:45
Во время олимпиады (точнее во время проверки задач) я столкнулся с некоей странностью: система проверки вываливала мои задачи (абсолютно все) в runtime error (сама windows не ругалась), однако при запуске руками программы срабатывали корректно. Я использовал Borland C/C++ 3.1. Может кто-нибудь мне объяснить с чем это может быть связано, а то обидно терять баллы из-за неизвестно чего! И вообще, кто в этом виноват: я или организаторы (BC 3.1 был заявлен как поддерживаемый)?
Станислав Васильев 17.05.2006 10:36
Это могут быть проблемы с памятью - например, их проверяющая программа сама есть память, которую могла бы использовать ваша программа.
Обычно при проверке вручную есть еще и процедура апелляции, то есть, сразу при проверке надо заявить о своих претензиях к некачественной проверке (это ведь несоблюдение их собственных правил, когда корректно работающая программа валится из-за ошибок в проверяющей системе), и тогда ваши проблемы сразу становятся проблемами организаторов. Сейчас уже поздновато, можно только прийти к Роговичу и поругаться. Или пожаловаться спонсорам, чтобы они с ним ругались :)
Александр Клепинин 17.05.2006 12:34
Для программ на языках C/C++ такое поведение может быть вызвано тем, что функция main оформлена так:
void main()
{
...
}
или так
int main()
{
...
}
В обоих случаях программа по завершении вернет ненулевой код возврата, который проверяющими системами обычно трактуется как Runtime Error.

Правильный способ оформления функции main выглядит так:
int main()
{
...
return 0;
}
То есть при корректном завершении программа должна возвращать 0 в качестве кода возврата.
Василий Кочнев 17.05.2006 17:59
Насчёт void main() это я не учёл :?
А с Роговичем я успел погугаться ещё во время проверки задач. Он сначала всю проверку задач проверял решения учеников своей школы (с одновременным их разбором), а потом за пятнадцать минут до объявления результатов сказал, что runtime error это моя проблема и никакие претензии не принимаются...
Большое всем спасибо :) Впредь буду осторожней...