Софтуерно Инженерство
Loading...
+ Нов въпрос
stbodurov avatar stbodurov 0 Точки

06. High Jump

Здравейте!

 

Имам проблем със задачата. Judge ми дава 70/100 точки. Бих се радвал, ако можете да ме упътите къде греша.

 

 

Условие    ----->     https://softuni.bg/downloads/svn/programming-basics-v4/course-directories/may-2019/2019-01/Exam/06.%20High%20Jump.pdf

Решението ми    ----->     https://pastebin.com/WxDkLx5N

Iv_Konov avatar Iv_Konov 245 Точки
Best Answer

Здравей, 

 

Направих малка корекция. Вложих двата if-a... Задачата е особена - първата цел е да се прескочи lathHeight, а след това постепенно да се стигне до wantedHeight...

               if (jumpHeight > lathHeight)
                    {
                        if (lathHeight >= wantedHeight)
                        {
                            Console.WriteLine($"Tihomir succeeded, he jumped over {wantedHeight}cm after {jumpCounter} jumps.");
                            return;
                        }

                        lathHeight += 5;
                        break;
                    }

Един случай/вход, който твоето решение не отчита:

231
205
235

Вторият опит (235) е бил над желаната височина (231), но програмата не трябва да приключва с успех!  В крайна сметка, летвата е била на ниско ниво, дори и пет метра да скочиш, не се счита, че си прескочил желаното ниво (231).

 

Поздрави,

Иван :)

0
17/03/2019 22:00:45
Iv_Konov avatar Iv_Konov 245 Точки

Здравей, heidan,

 

Направих малко корекции... Както и по-рано писах, задачата е особена. Особеното е, че измерват колко е самият скок - в реалния живот се мери колко е нивото на летвата и дали си я прескочил. laugh

От тук идва и особената логика на задачата... Трябва да прескачаш летвата на дадено ниво start и трябва да спре програмата с успех само, ако е прескочено успешно ниво start и летвата е на ниво desire. Т.е. ако нивото на летвата е по-ниско от desire, а ти скочиш и 5м няма как да се счита за успешен опит. и да спираш програмата с успех..

 

while (true)         // jump < desire - това не е коректно и избрах true - не трябва да спираш програмата, когато скокът е по-голям от desire (desire е желана височина, а не ниво на летвата)!
            {

=========================

if (jump > start)
                {
                    if (start >= desire) // добавих тази проверка
                    {
                        break;
                    }
                    start += 5;
                    failCount = 0;

                }

==========================

 if (jump > desire)
            {
                //start -= 5; // това не е нужно вече
                Console.WriteLine($"Tihomir succeeded, he jumped over {start}cm after {jumpCounter} jumps.");
            }

 

Поздрави,

Иван

0
19/03/2019 17:26:39
heidan avatar heidan 1 Точки

Аз по моя начин я докарах до 70/100 но така и не разбрах къде греша... И като няма и zero тестове.

Аз така и не съм разбрал какво се иска. Явно

0
19/03/2019 18:13:56