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

07. On Time for the Exam 93/100

Здравейте! Трябва ми малко помощ да открия грешката в кода.

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

namespace _07.On_Time_for_the_Exam
{
    class Program
    {
        static void Main(string[] args)
        {
            int hourexam = int.Parse(Console.ReadLine());
            int minexam = int.Parse(Console.ReadLine());
            int hourarrival = int.Parse(Console.ReadLine());
            int minarrival = int.Parse(Console.ReadLine());

            hourexam = 60 * hourexam;
            minexam = minexam + hourexam;

            hourarrival = 60 * hourarrival;
            minarrival = minarrival + hourarrival;

            int time = minarrival - minexam;
            int hours = 0;

            if(time>0)
                Console.WriteLine("Late");
            if (time < -30)
                Console.WriteLine("Early");
            else if (time<=0)
                Console.WriteLine("On time");

            if (time <0 & time > -60)
                Console.WriteLine("{0} minutes before the start", Math.Abs(time));


            if (time<=-60)
            {
                while(time<=-60)
                {
                    hours++;
                        time = time + 60;
                }
                if(time>-10)
                Console.WriteLine("{0}:0{1} hours before the start", hours, Math.Abs(time));
                else if (time<=-10)
                    Console.WriteLine("{0}:{1} hours before the start", hours, Math.Abs(time));

            }
            if(time>0 & time <60)
                Console.WriteLine("{0} minutes after the start", (time));

            if(time >=60)
            {
                while (time > 60)
                {
                    hours++;
                    time = time - 60;
                }
                if (time < 10)
                    Console.WriteLine("{0}:0{1} hours after the start", hours, time);
                else if (time >= 10)
                    Console.WriteLine("{0}:{1} hours after the start", hours, (time));
            }

            


            

        }
    }
}
 

0
Programming Basics
diljana avatar diljana 90 Точки
Best Answer

На втория while цикъл трябва да го промениш на  while (time >= 60). При теб сега е while (time > 60).
 

0
assen.bachovski avatar assen.bachovski 0 Точки

Здравейте. И при мен тази задача дава 93/100 и не зная къде е грашката

using System;

using System;

namespace On_Time_for_the_Exam_new
{
    class Program
    {
        static void Main(string[] args)
        {
            int examHour = int.Parse(Console.ReadLine());
            int examMin = int.Parse(Console.ReadLine()); 
            int arrivalHour = int.Parse(Console.ReadLine());
            int arrivalMin = int.Parse(Console.ReadLine());

            var examTimeInMin = (examHour * 60) + examMin;
            var  arrTimeInMin = (arrivalHour * 60) + arrivalMin;
            var totalTimeInMin = arrTimeInMin - examTimeInMin;

            var arrTimeH = 0;
            var arrTimeM = 0;

            
            if (totalTimeInMin < 0 && totalTimeInMin >= -30)
            {
                arrTimeM = Math.Abs(60 - (arrTimeInMin % 60));
                Console.WriteLine("On time");
                Console.WriteLine("{0} minutes before the start", arrTimeM);
            }
            else if (totalTimeInMin < -30 && totalTimeInMin >= -59)
            {
                arrTimeM = Math.Abs((60 - (arrTimeInMin % 60)) + examMin);
                Console.WriteLine("Early");
                Console.WriteLine("{0} minutes before the start", arrTimeM);
            }
            else if (totalTimeInMin < -59)
            {
                arrTimeH = Math.Abs(totalTimeInMin / 60);
                arrTimeM = Math.Abs(totalTimeInMin % 60);
                Console.WriteLine("Early");
                Console.WriteLine("{0}:{1:00} hours before the start", arrTimeH, arrTimeM);
            }
            else if (totalTimeInMin > 0 && totalTimeInMin <= 59)
            {
                arrTimeM = Math.Abs(totalTimeInMin % 60);
                Console.WriteLine("Late");
                Console.WriteLine("{0} minutes after the start", arrTimeM);
            }
            else if (totalTimeInMin > 59)
            {
                arrTimeH = Math.Abs(totalTimeInMin / 60);
                arrTimeM = Math.Abs(totalTimeInMin % 60);
                Console.WriteLine("Late");
                Console.WriteLine("{0}:{1:00} hours after the start", arrTimeH, arrTimeM);
            }
            else
            {
                Console.WriteLine("On time");
                
            }
        }
    }
}

0
02/11/2019 17:58:17
julianvz avatar julianvz 3 Точки

Инвестирах един ден в решаването на тази задача. При мен проблемът (93/100 точки) се оказа в недобро разбиране на условието. Бях решил, че минутите винаги трабва да се печатат с 2 цифри, оказва се обаче, че това изискване е валидно само при отклонения повече от 1 час.

quote:

"за закъснение от 1 час или повече. Минутите винаги печатайте с 2 цифри, например "1:03"."

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