Професионална програма
Loading...
+ Нов въпрос
orli94 avatar orli94 0 Точки

Conditional Statements Advanced - Exercise Task 04.Fishing Boat

За тази задача не мога да разбера,защо ми дава 60 точки в джъдж. Примерните входове са всички точни. Може ли някой да подскаже къде имам грешка тук?

 

https://judge.softuni.bg/Contests/Compete/Index/2379#3 

 

https://pastebin.com/2NQfYt8N

Тагове:
0
Programming Basics with C#
RoumenRoussev avatar RoumenRoussev 93 Точки

Добър вариант е да пробваш да пренапишеш задачата. Малко ти е дълъг кода и е задължителен рефакторинга. Когато използваш променливи за финансови операции, пробвай decimal за да подобриш точността. Прилагам ти примерен код от моя Basics.

using System;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            int budget = int.Parse(Console.ReadLine());
            string season = Console.ReadLine();
            int fishermanNum = int.Parse(Console.ReadLine());

            decimal boatPrice = 0;
            switch (season)
            {
                case "Spring":
                    boatPrice = 3000m;
                    break;
                case "Summer":
                case "Autumn":
                    boatPrice = 4200m;
                    break;
                case "Winter":
                    boatPrice = 2600m;
                    break;
            }

            if (fishermanNum <= 6)
            {
                boatPrice = boatPrice - (boatPrice * 0.10m);
            }
            else if (fishermanNum > 7 && fishermanNum <= 11)
            {
                boatPrice = boatPrice - (boatPrice * 0.15m);
            }
            else if (fishermanNum > 12)
            {
                boatPrice = boatPrice - (boatPrice * 0.25m);
            }

            if (fishermanNum % 2 == 0 && season != "Autumn")
            {
                boatPrice = boatPrice - (boatPrice * 0.05m);
            }

            if (budget >= boatPrice)
            {
                Console.WriteLine($"Yes! You have {Math.Abs(budget - boatPrice):F2} leva left.");
            }
            else
            {
                Console.WriteLine($"Not enough money! You need {Math.Abs(budget - boatPrice):F2} leva.");
            }
        }
    }
}

0
03/07/2020 20:10:11
orli94 avatar orli94 0 Точки

Благодаря!  И на мен ми се стори прекалено дълъг написаният от мен код,

 

Този вариант се чете много по лесно

 

 

0