Loading...
Vardanss avatar Vardanss 0 Точки

Conditional Statements(Exercise) Задача 8: World Swimming Record

Имам нужда от съдействие - явно не успявам да си видя грешката в задачата - при първия вход ми дава верен изход, но при втория ми се получава друг резултат. Ето го кода:

using System;

namespace SwimmingRecord
{
    class Program
    {
        static void Main(string[] args)
        {
            double theRecord = double.Parse(Console.ReadLine());
            double theDistance = double.Parse(Console.ReadLine());
            double speedIn1MeterInSeconds = double.Parse(Console.ReadLine());

            double shouldSwim = theDistance * speedIn1MeterInSeconds;
            double resistance = Math.Floor(theDistance / 15) * 12.5;
            double totalTime = Math.Floor(shouldSwim + resistance);

            

            if (totalTime > theRecord)
            {
                double neededTime = Math.Floor(totalTime - theRecord);
                Console.WriteLine($"No, he failed! He was {neededTime:f2} seconds slower.");

            }
            else if(totalTime < theRecord)
            {
                double swimmingTime = Math.Floor(resistance + totalTime);
                Console.WriteLine($" Yes, he succeeded! The new world record is {swimmingTime:f2} seconds.");

            }

          
        }
    }
}
 

Тагове:
0
Module: C# Advanced
emo.999 avatar emo.999 399 Точки

Имаше излишен Math.floor на няколко места.

Ето кода поправен: клик

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

0
Yolito avatar Yolito 9 Точки

Здравей! Това бяха проблемите:

1.  double resistance = (Math.Floor(theDistance / 15)) * 12.5; - тук трябваше да се добавят скоби, така че да се закръгля само дистанцията разделена на 15. Защото когато закръгляш и делителя (12,5) отговорът става грешен.;

2. Този ред:

double swimmingTime = Math.Floor(resistance + totalTime); - не ти е нужен, защото ти тук : 

double totalTime = Math.Floor(shouldSwim + resistance) 

си изчислил времето, за което е преплувано разстоянието + допълнителното време и така се получава, че вадиш 2 пъти допълнителното време.

3. Като цяло няма нужда другаде освен на double resistance да слагаш Math.Floor, защото когато това {name:F2} отново закръгля и реално закръгляш по 2 пъти ендно и също нещо.

0
Vardanss avatar Vardanss 0 Точки

Благодаря ви. Бях блокирала на задачата и пробвах с MathFloor на няколко места и без него също и освен това отдолу му бях задала да се събере resistance+totalTime и да го принтира, вместо само totalTime.

П.С. Emo99 - Don't judge. Прегледах всичко, което намерих и тъй като имам навика да откривам решенията сама, вместо да преписвам, исках да се погедне с друго око моя собствен код и да се види какво не му е наред, вместо просто да го препиша от друг човек. Пък и нали този форум е за това?!?

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