Loading...
mbencheva avatar mbencheva 52 Точки

[Exam Problems] - C# Basics - Exam 8 November 2014 - 02. Numerology - Unhandled Exception: System.FormatException

Здравейте,

Моля за помощ:

 

като си тесвам задачата в конзолата - работи, а в judje ми дава

Unhandled Exception: System.FormatException

 

Кодът е вече супер променен спрямо първоначалния вариант(взаимстван и от авторското решение), но все още не мога да разбера защо ми гърми:-(

код: http://pastebin.com/r9diJDDy

 

Да уточня: 50 от 100 точки(не всичко гърми judje-a+ 2 от тестовите варианта)

Тагове:
0
Programming Basics 15/12/2014 20:35:01
Kamigawa avatar Kamigawa 750 Точки

От DateTime-а е. И при мен даваше така с него(поради някаква причина в джъджа гърми на тази задача...). Може да се реши и без него например :

int[] date = Array.ConvertAll(inputStr[0].Split('.'), int.Parse);

        int day = date[0];
        int month = date[1];
        int year = date[2];

С тази корекция дава 100/100 в джъджа /пробвах/.

2
15/12/2014 20:43:33
mbencheva avatar mbencheva 52 Точки

Много благодаря,

Тръгна.

0
Filkolev avatar Filkolev 4482 Точки

И аз подозирам, че е от DateTime-a. Понеже на входа данните се подават във формат ДД.ММ.ГГГГ, а DateTime най-вероятно опитва да го прочете като ММ.ДД.ГГГГ, това автоматично означава грешка, когато денят е по-голям от 12. С нулевите тестове как стои въпросът?

Предполагам може да се укаже при пасването какъв формат се подава (всъщност сигурен съм, че има варианти, защото съм ги виждал). Но, както каза колегата, тук изобщо не е нужно да се ползват дати, а е достатъчно да се сплитне и да се вземат стойностите като обикновени интове. 

Може да пробваш и двата варианта - да вземеш числата без да минаваш през DateTime, или пък да уточниш формата при парсване. Гарантирано програмата работи и с дати, имаше на изпита хора, които така я решиха.

1
mbencheva avatar mbencheva 52 Точки

2 от нулевите данни гърмяха в джъджа(в конзолата всичко работеше)

DateTIme-a при мен ги четеше добре, но изглежда не и в джъджа. Тръгна като махнах DateTime.

Сега ще пробвам да уточня формата при парсването, но като в конзолата ми работеше и през ум не ми е минало да го правя:-)

Мерси за идеята

0
Filkolev avatar Filkolev 4482 Точки

DateTime зависи от културните настройки, затова при теб са минавали нулевите тестове, а в Judge не. Явно там се случва точно това, което предположих - опитва да вземе деня като месец и съответно гърми като види число по-голямо от 12.

0
mbencheva avatar mbencheva 52 Точки

ей сега го пуснах с DateTime.ParseExact и сработи идеално(най-вероятно затова е гърмяло - денят >12).

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