Loading...
maiamibee avatar maiamibee 0 Точки

Time + 15 Minutes

Здравейте,

 

Може ли някой да ми помогне малко с тази задача? При вход 23 и 45 ми връща 24,00, а трябва да е 0,00. Общо взето проблемът е, че 24 не става 0. Не виждам къде ми е грешката. Моля за помощ. Ето го кода.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Time_15_Minutes
{
    class Program
    {
        static void Main(string[] args)
        {
            var hours = int.Parse(Console.ReadLine());
            var mins = int.Parse(Console.ReadLine()) + 15;

            if (mins > 59)
            {
                hours += 1;
                mins = mins - 60;
                Console.WriteLine("{0}:{1:00}", hours, mins);
            }
            else if (hours >= 24)
            {
                hours = hours - 24;
                Console.WriteLine("{0}:{1:00}", hours, mins);
            }
            else
            {
                Console.WriteLine("{0}:{1:00}", hours, mins);
            }
        }
    }
}

Тагове:
0
Programming Basics
ralitsa_d avatar ralitsa_d 171 Точки

Трябва да сложиш допълнителна проверка за часовете след като прибавиш 1 (първият if).

При 23:45 се получава следното:

45 + 15 = 60 > 59 --> hours = 23 + 1 = 24, mins = 60 - 60 = 0 --> печаташ 24:00 --> програмат спира изпълнението си и не влиза в проверката за hours >= 24.

 

p.s. можеш да оставиш печатането за накрая, вместо да го пишеш 3 пъти.

1
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Часовете не могат да нарастват с повече от един, тъй като минутите се увеличават само с 15. Като станат 24, можеш просто да ги направиш 0. Няма нужда от аритметична операция или проверка, дали са повече от 24.

Ето я корекцията: http://pastebin.com/pJeWFYss

1
maiamibee avatar maiamibee 0 Точки

Благодаря и на двамата. Много ми помогнахте.

0
Lusien.GG avatar Lusien.GG 66 Точки

Според мен най-добрия начин е да обърнеш всичко в минути и след това:
minutes+=15;
hours = minutes/60;
minutes=minutes%60;

и си ги печаташ. 
Поздрави.


 

2
31/05/2016 19:57:15
Lusien.GG avatar Lusien.GG 66 Точки

имах в предвид след като обърнем часовете в минути, че само добавяме 15 минути и преобразуваме...

1
sider.topalov avatar sider.topalov 38 Точки

Здравей,

твоето решение също ще работи, просто трябва да махнеш на втората проверка (else if(hours>=24)) => (if(hours >=24)) и така ще ти работи следователно ще трябва да изнесеш отпечатването за накрая и си готов.

Поздрави и успех! :)

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