Професионална програма
Loading...
+ Нов въпрос
gstefanova22 avatar gstefanova22 4 Точки

Задача: 01.Навреме за изпит - On Time For The Exam (проблем)

Здравейте!

https://pastebin.com/R45dCAuS - това е решението ми на въпросната задача.

Judge ми дава 87 точки, а проверките към условието се изпълняват всичките. Сигурно имам някакъв много глупав пропуск или грешка.

Може ли малко помощ?

Тагове:
0
Programming Basics
boykopk avatar boykopk 146 Точки

Здравей,

на ред 25 трябва да е >=.

0
gstefanova22 avatar gstefanova22 4 Точки

Така беше :). Глупава грешка е, обаче Judge продължава да не ми дава 100 точки, ами 93.

0
denis.argatski avatar denis.argatski 24 Точки

https://pastebin.com/DkuFPnz2 - разгледай мойто решение и може да си откриеш грешката

1
desislava777 avatar desislava777 165 Точки

Ето още 2 примерни решения на C# и Java https://pastebin.com/6EVb63bv  https://pastebin.com/cTnG3K4A дано да са ти от полза.

0
traykova44 avatar traykova44 93 Точки

Възможно е да пропускаш  проверка  !=0

0
AtanasovAtanas avatar AtanasovAtanas 415 Точки

Минутите трябва да са с плаваща нула.

0
TeodorStefanovPld avatar TeodorStefanovPld 1282 Точки

значи няколко неща колегата ти го е казал, няма я запетаяат и проверката за равенство.. ама и честно пишете на с# и праскате тоя var на всякъде пълна пародия.и вместо това мъчно решение, никои не се сетил да ти подскаже да използваш Timespan или datetime

0
VasilKotsev avatar VasilKotsev 805 Точки

Поствам едно решение с DateTime за тези, които искат да си напънат сивото вещество с тази полезна структура. 

100/100 Judge

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

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {

            int hour_izpit = int.Parse(Console.ReadLine());
            int minutes_izpit = int.Parse(Console.ReadLine());
            int hrs_arrival = int.Parse(Console.ReadLine());
            int minute_arrival = int.Parse(Console.ReadLine());

            string izpithrs = hour_izpit.ToString() + ":" + minutes_izpit.ToString("00");
            string arrivalhrs = hrs_arrival.ToString() + ":" + minute_arrival.ToString("00");

            DateTime izpit_hours = DateTime.ParseExact((izpithrs), "H:mm", CultureInfo.InvariantCulture);
            DateTime arrivaltime = DateTime.ParseExact((arrivalhrs), "H:mm", CultureInfo.InvariantCulture);

            if (arrivaltime > izpit_hours)
            {
                Console.WriteLine("Late");

                if (arrivaltime > izpit_hours && arrivaltime <= izpit_hours.AddMinutes(59))
                {
                    Console.WriteLine(
                        (((DateTime)arrivaltime - (DateTime)izpit_hours).TotalMinutes).ToString() +
                        " minutes after the start");
                }

                else
                {
                    Console.WriteLine(
                        (((DateTime)izpit_hours - (DateTime)arrivaltime)).ToString("h\\:mm") +
                        " hours after the start");
                }
            }

            else if (arrivaltime == izpit_hours)
            {
                Console.WriteLine("On time");
            }

            else if (arrivaltime < izpit_hours)
            {
                if (arrivaltime < izpit_hours && arrivaltime >= izpit_hours.AddMinutes(-30))
                {
                    Console.WriteLine("On time");
                    Console.WriteLine(
                        (((DateTime)izpit_hours - (DateTime)arrivaltime).TotalMinutes).ToString() +
                        " minutes before the start");
                }

                else if (arrivaltime < izpit_hours && arrivaltime >= izpit_hours.AddMinutes(-59))
                {
                    Console.WriteLine("Early");
                    Console.WriteLine(
                        (((DateTime)izpit_hours - (DateTime)arrivaltime).TotalMinutes).ToString() +
                        " minutes before the start");
                }

                else
                {
                Console.WriteLine("Early");
                    Console.WriteLine(
                        (((DateTime)izpit_hours - (DateTime)arrivaltime)).ToString("h\\:mm") +
                        " hours before the start");
                }
            }


        }
    }
}

 

0
24/01/2018 23:29:33
dZf1aeA-Nikolay_A avatar dZf1aeA-Nikolay_A 4 Точки

Пробвай и променливите да са ти int. Иначе ето едно решение и от мен https://pastebin.com/tr17d3qv. ;)

0
Ankoun1 avatar Ankoun1 3 Точки

using System;

namespace lodka_i_ribolov
{
    class Program
    {
        static void Main(string[] args)
        {
            

          int examOfHour = int.Parse(Console.ReadLine()); 
          int minuteOfExam = int.Parse(Console.ReadLine()); 
          int hourOfArrival = int.Parse(Console.ReadLine()); 
          int minuteofArrival = int.Parse(Console.ReadLine());
          int examTime =  examOfHour * 60 + minuteOfExam;
          int arrivalTime =   hourOfArrival * 60 +minuteofArrival;
            int diff = examTime - arrivalTime;
            int hour = Math.Abs(diff / 60);
            int minuts = Math.Abs(diff % 60);
            
            if (diff <0)
                {
                Console.WriteLine("Late");
                if (diff < -59)
                {
                    Console.WriteLine($"{hour}:{minuts:00} hours after the start");
                }
                else
                {
                    Console.WriteLine($"{Math.Abs(diff)} minutes after the start");

                }
                }else if (diff > 30)
                {
                    Console.WriteLine("Early");
                if(diff > 59)
                {
                    Console.WriteLine($"{hour}:{minuts:00} hours before the start");
                }
                else
                {
                    Console.WriteLine($"{diff} minutes before the start");
                }
            }
            else
            {
                Console.WriteLine("On time");
              if (diff > 0) {
                    Console.WriteLine($"{diff} minutes before the start");
                }
            }
                  
    }
    }
   
}

0