Loading...
VenciSarov avatar VenciSarov 37 Точки

Проблем със задача: "examSchedule" от C# Basics Exam 12 April 2014 Evening

Judge ми дава 87/100 точки. Тест 4 ми гърми и немога да разбера защо...

Входа на теста е:

11
1
AM
2
59

Очаквания изход е: 

02:00:PM

Моят изход е абсолютно същия. Аз ли бъркам някъде или Judge...?

Ето го и кода ми:

using System;

class ExamSchedule
{
    static void Main()
    {
        int examStartingHour = int.Parse(Console.ReadLine());
        int examStartingMinute = int.Parse(Console.ReadLine());
        string partOfTheDay = Console.ReadLine();
        int durationHours = int.Parse(Console.ReadLine());
        int durationMinutes = int.Parse(Console.ReadLine());

        int totalExamStartingInMinutes = (examStartingHour * 60) + examStartingMinute;
        int totalDurationInMinutes = (durationHours * 60) + durationMinutes;

        int endExamTotalMinutes = totalExamStartingInMinutes + totalDurationInMinutes;

        int endExamInHours = endExamTotalMinutes / 60;
        int endExamInMinutes = endExamTotalMinutes % 60;

        if (partOfTheDay == "AM")
        {
            if (endExamInHours < 12)
            {
                Console.WriteLine("{0:00}:{1:00}:AM", endExamInHours, endExamInMinutes);
            }
            else if (endExamInHours == 12)
            {
                Console.WriteLine("{0:00}:{1:00}:PM", endExamInHours, endExamInMinutes);

            }
            else
            {
                endExamInHours -= 12;
                Console.WriteLine("{0:00}:{1:00}:PM", endExamInHours, endExamInMinutes);
            }
        }
        if (partOfTheDay == "PM")
        {
            if (endExamInHours < 12)
            {
                Console.WriteLine("{0:00}:{1:00}:PM", endExamInHours, endExamInMinutes);
            }
            else if (endExamInHours == 12)
            {
                Console.WriteLine("{0:00}:{1:00}:AM", endExamInHours, endExamInMinutes);

            }
            else
            {
                endExamInHours -= 12;
                Console.WriteLine("{0:00}:{1:00}:AM", endExamInHours, endExamInMinutes);
            }
        }
    }
}

Тагове:
0
Programming Basics
Plamen27 avatar Plamen27 599 Точки

Здравей,

Разбрах къде е грешката ти. Или има някакъв Judge проблем или е някаква хитрина на Trim checker-a.

Програмата ти наистина греши но реално на втори тест, който е:

12
0
PM
23
59

При теб връща:

23:59:AM, а трябва да е 11:59:AM  защото 12:00 PM е 12  на обяд.

Интересното обаче е, че ако оправиш грешката лесно, програмата пак греши циклично.

Явно трябва да се пренапише логиката.

0
VenciSarov avatar VenciSarov 37 Точки

Дам наистина...незнам защо си играх с тези писаници при положение, че има DateTime. smiley

Както и да е благодаря ти за помоща.

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