Loading...
ioanna.konova avatar ioanna.konova 47 Точки

Задача On Time for the Exam от Conditional Statements Advanced - Exercise - 87/100 в Judge

Здравейте,

Някой може ли да открие къде е грешката в кода ми - https://pastebin.com/XEbD5sRA?fbclid=IwAR19RxZZQI_bg3jxmpCSuhx3SXLH-FSFAxL14nfrMe8LhcEHzsgB6MRIQ7c? Отговорите ми са верни, но Judge ми дава 87/100 и то при тестове 2 и 3, при които не мога да видя къде е грешката.

Условието на задачата:

8.Навреме за изпит

Студент трябва да отиде на изпит в определен час (например в 9:30 часа). Той идва в изпитната зала в даден час на пристигане (например 9:40). Счита се, че студентът е дошъл навреме, ако е пристигнал в часа на изпита или до половин час преди това. Ако е пристигнал по-рано повече от 30 минути, той е подранил. Ако е дошъл след часа на изпита, той е закъснял. Напишете програма, която прочита време на изпит и време на пристигане и отпечатва дали студентът е дошъл навреме, дали е подранил или е закъснял и с колко часа или минути е подранил или закъснял.

Вход

От конзолата се четат 4 цели числа (по едно на ред), въведени от потребителя:

  • Първият ред съдържа час на изпита – цяло число от 0 до 23.
  • Вторият ред съдържа минута на изпита – цяло число от 0 до 59.
  • Третият ред съдържа час на пристигане – цяло число от 0 до 23.
  • Четвъртият ред съдържа минута на пристигане – цяло число от 0 до 59.

Изход

На първият ред отпечатайте:

  • Late”, ако студентът пристига по-късно от часа на изпита.
  • On time”, ако студентът пристига точно в часа на изпита или до 30 минути по-рано.
  • Early”, ако студентът пристига повече от 30 минути преди часа на изпита.

Ако студентът пристига с поне минута разлика от часа на изпита, отпечатайте на следващия ред:

  •  

“mm minutes after the start” за закъснение под час.

  • “hh:mm hours after the start” за закъснение от 1 час или повече. Минутите винаги печатайте с 2 цифри, например “1:03”.
0
Programming Basics
Axiomatik avatar Axiomatik 2422 Точки

Error is caused during the calculation of the final time-output. Use modular and standard division for the time-output and all of the tests will be OK:

 

using System;

namespace OnTimeForTheExam
{
    class Program
    {
        static void Main(string[] args)
        {
            int hourOfExam = int.Parse(Console.ReadLine());
            int minuteOfExam = int.Parse(Console.ReadLine());
            int hourOfArrived = int.Parse(Console.ReadLine());
            int minuteOfArrived = int.Parse(Console.ReadLine());

            int totalminuteOfExam = (hourOfExam * 60) + minuteOfExam;
            int totalminuteOfArrived = (hourOfArrived * 60) + minuteOfArrived;
            int different = totalminuteOfExam - totalminuteOfArrived;

            if (totalminuteOfArrived == totalminuteOfExam)
            {
                Console.WriteLine("On time");
            }
            else if (different >= 0 && different <= 30)
            {
                Console.WriteLine("On time");
                Console.WriteLine($"{different} minutes before the start");

            }
            else if (different > 30)
            {
                if (different < 60)
                {
                    Console.WriteLine("Early");
                    //Console.WriteLine($"{totalminuteOfExam - totalminuteOfArrived} minutes before the start");
                    Console.WriteLine($"{different} minutes before the start");
                }
                else
                {
                    Console.WriteLine("Early");
                    int hour = different / 60;
                    int minutes = different % 60;

                    //Console.WriteLine($"{hourOfExam - hourOfArrived}:{minuteOfExam - minuteOfArrived:d2} hours before the start");
                    Console.WriteLine($"{hour}:{minutes:D2} hours before the start");
                }
            }
            else if (different < 0)
            {
                int differentAbs = Math.Abs(different);

                if (differentAbs < 60)
                {
                    Console.WriteLine("Late");
                    Console.WriteLine($"{differentAbs} minutes after the start");
                }
                else
                {
                    int hour = differentAbs / 60;
                    int minutes = differentAbs % 60;
                    Console.WriteLine("Late");
                    Console.WriteLine($"{hour}:{minutes:d2} hours after the start");
                }

                //if (Math.Abs(different) < 60)
                //{
                //    Console.WriteLine("Late");
                //    Console.WriteLine($"{Math.Abs(totalminuteOfExam - totalminuteOfArrived)} minutes after the start");
                //}
                //else
                //{
                //    Console.WriteLine("Late");
                //    Console.WriteLine($"{Math.Abs(hourOfExam - hourOfArrived)}:{Math.Abs(minuteOfExam - minuteOfArrived):d2} hours after the start");
                //}
            }
        }
    }
}

 

 

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