Софтуерно Инженерство
Loading...
ivankr89 avatar ivankr89 1 Точки

Задача 06. Точка на страна на правоъгълник

Здравейте!

 

Опитвам се да реша тази задача от много дълго време и затова реших да помоля за помощ...

При тест във Visual Studio изходът е правилен.

Следвах решението, което е в книгата "Programming Basics C#". Judge не ми го приема.

Опитах втория вариант на решението, дадено в книгата. Не...

Следвах решението от видеото "По-сложни проверки". И него не ми го приема.

Търсих из форума за други решения. Изглеждат ми напълно идентични с моите. Тях ги приема, а моите не.

Очевидно не успявам да видя някакъв детайл. Моля, погледнете отстрани и ми кажете къде бъркам.

От сега съм благодарен. :)

 

Ето го вариант 1:

using System;

namespace PointOnABorder
{
    class Program
    {
        static void Main(string[] args)
        {
            var x1 = double.Parse(Console.ReadLine());
            var y1 = double.Parse(Console.ReadLine());
            var x2 = double.Parse(Console.ReadLine());
            var y2 = double.Parse(Console.ReadLine());
            var x = double.Parse(Console.ReadLine());
            var y = double.Parse(Console.ReadLine());

            if (((x == x1 || x == x2) && (y >= y1 || y <= y2)) ||
                ((y == y1 || y == y2) && (x >= x1 || x <= x2)))
            {
                Console.WriteLine("Border");
            }

            else
            {
                Console.WriteLine("Inside/Outside");
            }
        }
    }
}

 

И вариант 2:

using System;

namespace PointOnABorder
{
    class Program
    {
        static void Main(string[] args)
        {
            double x1 = double.Parse(Console.ReadLine());
            double y1 = double.Parse(Console.ReadLine());
            double x2 = double.Parse(Console.ReadLine());
            double y2 = double.Parse(Console.ReadLine());
            double x = double.Parse(Console.ReadLine());
            double y = double.Parse(Console.ReadLine());

            var leftside = (x == x1) && (y >= y1) && (y <= y2);
            var rightside = (x == x2) && (y >= y1) && (y <= y2);
            var upside = (y == y1) && (x >= x1) && (x <= x2);
            var downside = (y == y2) && (x >= x1) && (x <= x2);

            if (leftside || rightside || upside || downside)
            {
                Console.WriteLine("Border");
            }

            else
            {
                Console.WriteLine("Inside/Outside");
            }
        }
    }
}

 

Господин Judge ми дава само 27 точки, а опитах как ли не.

Какво не мога да видя?

ivankr89 avatar ivankr89 1 Точки

Благодаря много! Разбрах кое съм сбъркал и вече ми е по-спокойно! :)

0