"On Time for the Exam" error without detail
Здравейте,
Опитах се да реша задачата "Навреме за изпит" (№9 в документа със задачи за упражнения, 3та - 17 май)
Един тест само ми гърми в Judge - и не е дадено обяснение за грешката
Test #14 (Incorrect answer)
Time used: 0.009 s
Memory used: 12.04 MB
Получавам само грешката горе, без пример за грешния тест.
Това е кодът ми: https://pastebin.com/5ri8h4pG
Предварително благодаря за помощта!
GSS1609
Благодаря. Аз исках да разбера къде е грешката в моя код. Но ще пререша в по-опростен вариант..
Това е кодът ти оправен с добавени коментари.
using System;
namespace Test
{
class Program
{
static void Main(string[] args)
{
int examTimeHour = int.Parse(Console.ReadLine());
int examTimeMinutes = int.Parse(Console.ReadLine());
int arrivalTimeHour = int.Parse(Console.ReadLine());
int arrivalTimeMinutes = int.Parse(Console.ReadLine());
// При такива задачи - най-важно е приравняването на стойности - към избрана отправна точка.
// Трудно е да работим в часове и минути, затова е най-добре да приравним към минути (особено ако имаме "в минути" изчисления в условието).
int examTime = examTimeMinutes + examTimeHour * 60;
int arrivalTime = arrivalTimeMinutes + arrivalTimeHour * 60;
int difference; //int difference; - само инициализираш, не присвояваш стойност
if (arrivalTime > examTime)
{
Console.WriteLine("Late");
difference = arrivalTime - examTime;
if (difference < 60)
{
Console.WriteLine($"{difference} minutes after the start"); // “mm minutes after the start”
}
else if (difference >= 60 && difference % 60 != 0) // твоят код - else if (difference > 60 && difference % 60 != 0) - липсва ти проверка на границата
{
if (difference % 60 < 10)
{
Console.WriteLine($"{difference / 60}:0{difference % 60} hours after the start"); //“hh:mm hours after the start”
}
else
{
Console.WriteLine($"{difference / 60}:{difference % 60} hours after the start"); //“hh:mm hours after the start”
}
}
else if (difference >= 60 && difference % 60 == 0) // твоят код - else if (difference > 60 && difference % 60 == 0) - липсва ти проверка на границата
{
Console.WriteLine($"{difference / 60}:00 hours after the start");
}
}
else if (arrivalTime <= examTime && arrivalTime >= (examTime - 30))
{
difference = examTime - arrivalTime;
if (difference == 0)
{
Console.WriteLine("On time");
}
else
{
Console.WriteLine("On time");
Console.WriteLine($"{difference} minutes before the start");
}
}
else if (arrivalTime <= examTime && (examTime - 30) > arrivalTime)
{
difference = examTime - arrivalTime;
Console.WriteLine("Early");
if (difference >= 60)
{
if (difference % 60 != 0)
{
if (difference % 60 < 10)
{
Console.WriteLine($"{difference / 60}:0{difference % 60} hours before the start"); //“hh:mm hours before the start”
}
else
{
Console.WriteLine($"{difference / 60}:{difference % 60} hours before the start"); //“hh:mm hours before the start”
}
}
else if (difference % 60 == 0)
{
Console.WriteLine($"{difference / 60}:00 hours before the start");
}
}
else
{
Console.WriteLine($"{difference} minutes before the start"); // “mm minutes after the start”
}
}
}
}
}
Благодаря много!