Софтуерно Инженерство
Loading...
+ Нов въпрос
Torosyan avatar Torosyan 0 Точки

Time + 15 minutes.

Въпрос: Опитвам се различни решения на задачките и в случая задачата като цяло е правилно решена, но при вход 23,59 имам изход 00:14 вместо 0:14. Грешката идва от сбора на минутите в кода, където съм задал if (theHours == 24)... Получавам число 24.23333, което се закръгля до 24 и в резултат имам грешка. Някой има ли идея как мога да поправя тази част? Прилагам и кода:

using System;

namespace after15minutes
{
    class after15minutes
    {
        static void Main(string[] args)
        {
            int hours = int.Parse(Console.ReadLine());
            int minutes = int.Parse(Console.ReadLine());

            int totalMinutes = hours * 60 + minutes;
            int theHours = (15 + totalMinutes) / 60;
            int theMinutes = (15 + totalMinutes) % 60;

            if (theHours == 24)
            {
                Console.WriteLine($"{"00"}:{theMinutes}");
            }
            
            else if (theMinutes < 10)
            {
                Console.WriteLine($"{theHours}:0{theMinutes}");
            }
            else
            {
                Console.WriteLine($"{theHours}:{theMinutes}");
            }
        }
    }
}

Тагове:
0
C# Web Development Basics
ElviraPetkovaSvishtov avatar ElviraPetkovaSvishtov 152 Точки

Поправих ти единсвено в първата проверка. Ето как изглежда:

if (theHours == 24)
{
         if (theMinutes < 10)
         {
                Console.WriteLine($"{0}:0{theMinutes}");
         }
         else
         {
                Console.WriteLine($"{"0"}:{theMinutes}");
         }
 }

0
Iv_Konov avatar Iv_Konov 357 Точки

Къснично се включвам... Предлагам и малко по-кратично решение:

(на първия if - theHours се нулират и после просто се изписват  от Console.WriteLine)

       

            if (theHours > 23)
            {
                theHours = 0;
            }

            if (theMinutes < 10)
            {
                Console.WriteLine($"{theHours}:0{theMinutes}");
            }
            else
            {
                Console.WriteLine($"{theHours}:{theMinutes}");
            }

1