[Homework] Programming Basics - Loops - Problem {20} – Exam Schedule
Tова решение на задачата ми дава 87 в judge-a
http://pastebin.com/qp8qmRar
А не намирам грешката .
Tова решение на задачата ми дава 87 в judge-a
http://pastebin.com/qp8qmRar
А не намирам грешката .
Имаше някакъв гаден случай в тази задача, когато се решаваше с цели числа ако не се лъжа; нещо свързано с 12:00, 00:00, което беше неприятно за оправяне дори да знаеш кога точно се получава. Най-добре ползвай DateTime, има готови методи за добавяне на часове/минути и няма да се налага да мислиш за особените моменти.
Аз също получавах 87 точки - получавах грешен отговор на тест 4. След 1 час проби разбрах къде ми е грешката(вече имах 100 точки) но не разбрах защо се получава. Разбрах че когато часът на приключване на изпита, в твоя случай endHours e равен на 35, examPartOfDay трябва да е същия като partOfDay.Преди последния си Console.Writeline() пробвай да направиш провеката(тази проверка обаче трябва да е преди да промениш endHour=endHour-12)
if(endHours==35)
{
examPartOfDay=partOfDay;
}
а редът: endHour=endHour-12;
трябва да е след това.
Не знам защо се получава, но това работи при мен и имам 100 точки, след тази проверка.
Това прилича по-скоро на хак и случайност. Най-добре погледнете тестовете да видите къде се получава.
Забравих да добавя, че промяната на endHours трябва да е: endHours=endHours%12 a не: endHours=endHours-12;
Да прав си, определено случайно разбрах къде е грешката(затова и не мога да си я обясня).
А от къде можем да ги видим тестовете, понеже към задачата има линкове само към условието и авторското решение?
И аз получавам 87/100. Благодаря на другите за насоките!
Искам да спомена, че в авторското решение се използва:
Console.WriteLine("{0:hh:mm:tt}", endTime);
Това :tt при моята версия VS2013 хем не работи, хем не дава грешка, просто е празен стринг. "12:02:".
Казвам, за да не се чуди някой, ако изпадне в същата ситуация.