Loading...
v1ppers0nn avatar v1ppers0nn 234 Точки

Защо ми дава 60 точки?

Защо на задача 01. Simple Calculation

using System;

class first
{
static void Main()
{
decimal x = decimal.Parse(Console.ReadLine());
decimal y = decimal.Parse(Console.ReadLine());

if (x == 0 && y == 0)
{
Console.WriteLine(0);
}
else if (y == 0)
{
Console.WriteLine(5);
}
else if (x == 0)
{
Console.WriteLine(6);
}
else if (x > 0 && y > 0)
{
Console.WriteLine(1);
}
else if (x < 0 && y > 0)
{
Console.WriteLine(2);
}
else if (x < 0 && y < 0)
{
Console.WriteLine(3);
}
else
{
Console.WriteLine(4);
}
}
}

ми дава 60 точки?

0
Programming Basics
Anonymous:
Намерено решение.
Yordan.Bonev avatar Yordan.Bonev 32 Точки

Не си обхванал всичко случай, така набързо преглеждайки ти гона ти липсват случаите когато x=0, y < 0 и x=0, y> 0 и същото за y :)

2
g.stoyanov avatar g.stoyanov 776 Точки

Вместо decimal ползвай long или BigInteger  за да влезеш в диапазона -2 000 000 000 001 337 and 2 000 000 000 001 337.

0
dentia avatar dentia 362 Точки

Типът данни си е наред, може просто да го смени с double. Все пак координатната система не се състои само от цели числа, даже напротив smile

2
g.stoyanov avatar g.stoyanov 776 Точки

Да наистина е така! :) Колегата по долу е написал проблема обърната проверка за х и y

0
Kosta avatar Kosta 35 Точки

Всичко ти е на ред. Просто си обърнал проверките за x=0 и y =0 . При x=0 трябва да върнеш 5, а при y=0 съответно 6.

Тествах го с промените - 100/100
0
plamenti avatar plamenti 28 Точки

Размени стойностите, които се получават при у==0 и х==0.

Да стане ето така:


else if (y == 0)
{
Console.WriteLine(6);
}
else if (x == 0)
{
Console.WriteLine(5);
}

0
v1ppers0nn avatar v1ppers0nn 234 Точки

Е добре, за толкова просто нещо 40 точки отнема??? По пътя на логиката ще тръгна да търся нещо доста по згрешено, защото това е половин задача почти... а то...

-2
beBoss avatar beBoss 507 Точки

Ами като се има на предвид, че x и y са двете основни неща в задачата, "толкова просто" нещо е нормално да ти взима повече точки. Пък и какво има да търсиш на толкова проста задача и къде има да задълбаваш в нея? Имаш да провериш 4 квадранта, като имаш 3 допълнителни случая ако точките са на x, y, 0 и да сложиш правилния тип данни.

3
g.stoyanov avatar g.stoyanov 776 Точки

 beBoss ти е отговорил в предишния коментар, само да допълня:

Представи си че имаш кола всичко наред даваш газ върви, набиваш спирачка спира... въртиш наляво тя завива надясно :) кофти нали. Никак не е малка грешката, особенно като знаем и как работи judge-a.

1
ZvetanIG avatar ZvetanIG 907 Точки

Когато y = 0 точката лежи на оста х и трябва да отпечати 6, а не 5.

Когато х = 0 точката лежи на оста y и трябва да отпечати 5, а не 6.

 

        double x =  double.Parse(Console.ReadLine());
        double y = double.Parse(Console.ReadLine());

        if (x == 0 && y == 0)
        {
            Console.WriteLine(0);
        }
        else if (x == 0)
        {
            Console.WriteLine(5);
        }
        else if (y == 0)
        {
            Console.WriteLine(6);
        }
        else if (x > 0 && y > 0)
        {
            Console.WriteLine(1);
        }
        else if (x < 0 && y > 0)
        {
            Console.WriteLine(2);
        }
        else if (x < 0 && y < 0)
        {
            Console.WriteLine(3);
        }
        else if (x > 0 && y < 0)
        {
            Console.WriteLine(4);
        }

Този код дава 100 точки

0
ViValDam avatar ViValDam 15 Точки

Сложи общите, по-често срещани случаи отпред .

Най- вероятно, поставени тези с 0 -лите отпред изпуска някои от случайте .

Не си спеставяй писането и опиши подробно случаите .

Като, например, напиши (x==0 && y !=0 ), вместо само (x==0) и тогава няма да има значение подреждането.

Натисни на  DETAILS и виж какво казва Джаджа . каква ти е грешката .

 

Ето го моето решение даващо 100 точки 

 

using System;

class Program
{
static void Main()
{
decimal x = decimal.Parse(Console.ReadLine());
decimal y = decimal.Parse(Console.ReadLine());

if (x > 0 && y > 0)
{
Console.WriteLine(1);
}
else if (x < 0 && y > 0)
{
Console.WriteLine(2);
}
else if (x < 0 && y < 0)
{
Console.WriteLine(3);
}
else if(x > 0 && y < 0)
{
Console.WriteLine(4);
}
else if (x==0 && y==0)
{
Console.WriteLine(0);
}
else if (x==0)
{
Console.WriteLine(5);
}
else if (y==0)
{
Console.WriteLine(6);
}
}
}

 

 

1
ViValDam avatar ViValDam 15 Точки
Ето така твоето подреждане дава 100 точки ----- using System; class Program { static void Main() { decimal x = decimal.Parse(Console.ReadLine()); decimal y = decimal.Parse(Console.ReadLine()); if (x==0 && y==0) { Console.WriteLine(0); } else if (x==0 && y!=0) { Console.WriteLine(5); } else if (y==0 && x!=0) { Console.WriteLine(6); } if (x > 0 && y > 0) { Console.WriteLine(1); } else if (x 0) { Console.WriteLine(2); } else if (x 0 && y
1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.