Loading...
red_dragon_1 avatar red_dragon_1 1 Точки

Задача 06. High Jump Programing Basics Exam Preparation issue

Здравейте, 
 

имам нужда от малко помощ, написах си някакво решение на задачата, което ми изглежда, че работи... а в judje имам 70 точки за него . 
Прегледах и други решения на задачата, вероятно доста по-лесни и удачни, но ако може да помогнете с конкретното ми решение и с това къде бъркам, ще съм благораден :)

 

https://pastebin.com/DVT3zvuK

Благодаря предварително

Тагове:
0
Programming Basics
Iv_Konov avatar Iv_Konov 383 Точки

Здравей,

 

Съвсем малко пипнах и - 100/100:

 

==========

using System;

namespace number4
{
    class Program
    {
        static void Main(string[] args)
        {
            int wishedHeight = int.Parse(Console.ReadLine());

            int jumpsSUCSESSCounter = 0; // връщам опитите до 0!
            int jumpsWithoutSUCSESSCounter = 0;
            int letvaHeight = wishedHeight - 30;

            int heightChageSum = wishedHeight;

            int jumpAgain = 0;


            while (true) //?!? heightChageSum >= letvaHeight - целта е първо да прескаме летвата, докато стигнем до желаното ниво!
            {
                jumpAgain = int.Parse(Console.ReadLine());

                jumpsSUCSESSCounter++;

                //if (letvaHeight == heightChageSum) // първо трябва да сме сигурни, че е прескочена летвата успешно
                //{
                //    break;
                //}

                if (jumpAgain > letvaHeight) // тук е критичен момент в програмата - уверяваме се дали има успешен скок и ако е успешен дали нивото на летвата е стигнало желаната височина
                {

                    if (letvaHeight >= heightChageSum) //jumpAgain >= heightChageSum
                    {
                        break;
                        //letvaHeight += 5; // това не е нужно
                        //jumpsWithoutSUCSESSCounter = 0;
                        //jumpsSUCSESSCounter++;
                        //continue;
                    }

                    letvaHeight += 5;
                    jumpsWithoutSUCSESSCounter = 0;

                }
                else if (jumpAgain <= letvaHeight)
                {
                    jumpsWithoutSUCSESSCounter++;

                }


                if (jumpsWithoutSUCSESSCounter == 3)
                {
                    Console.WriteLine($"Tihomir failed at {letvaHeight}cm after {jumpsSUCSESSCounter} jumps.");
                    return;

                }               

            }

            Console.WriteLine($"Tihomir succeeded, he jumped over {letvaHeight}cm after {jumpsSUCSESSCounter} jumps.");

        }
    }
}

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

 

Поздрави,

Иван

 

0
04/04/2019 16:21:20
torosian88 avatar torosian88 6 Точки

Привет !

Дали ще е удобно да погледнете и това решение ? Дава 60/100.

Благодаря :)

https://pastebin.com/9m9wCpiN

0
Iv_Konov avatar Iv_Konov 383 Точки

torosian88,

 

Готов си - 100/100.  

 

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

while (true) // jump < goalJump това не е подходящо условие! goalJump е виртуално ниво, а не реалното ниво на летвата - currentGoal. Пример: currentGoal = 2.0, jump = 2.7, goalJump = 2.5 - при този примерен изход ще излезнеш от цикъла, и би било грешно!!!
            {
                jump = int.Parse(Console.ReadLine());
                jumpCounter++;

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

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

if (jump > currentGoal) // jump > currentGoal && jump < goalJump - по-горе съм писал за тази особеност на задачата
                {
                    if (currentGoal >= goalJump)
                    {
                        break;
                    }
                    currentGoal += 5;
                }

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

 

Поздрави,

Иван :)

 

0
torosian88 avatar torosian88 6 Точки

Много благодаря ! Хубав и успешен ден :) !

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