Loading...
Petya_koleva avatar Petya_koleva 104 Точки

Fishing Boat

Здравейте! Имам проблем с програмата. Първите два примера от задачата ги решава правилно, но Winter  ми е грешно, помагайте.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _06FishingBoat
{
    class Program
    {
        static void Main(string[] args)
        {
            int budget = int.Parse(Console.ReadLine());
            string season = Console.ReadLine();
            int numberOfFishermen = int.Parse(Console.ReadLine());
            double price = 0;


            if (season == "Spring")
            {
                price = 3000;

            }
            if (season == "Summer")
            {
                price = 4200;

            }

            if (season == "Autumn")
            {
                price = 4200;

            }
            if (season == "Winter")
            {
                price = 2600;
            }
            
           
            if (numberOfFishermen <= 6)
            {
                price*= 0.9;
            }
            else if (7 < numberOfFishermen && numberOfFishermen >= 11)
            {
                price *= 0.85;
            }
            else if (numberOfFishermen > 12)
            {
                price *= 0.75;
            }
            if (numberOfFishermen % 2 == 0)
            {
                if (season != "Autumn")
                {
                    price *= 0.95;
                }

            }

            if (budget >= price)
            {

                Console.WriteLine($"Yes! You have {(budget - price):F2} leva left.");
            }
            else
                Console.WriteLine($"Not enough money! You need {(price - budget):F2} leva.");

        }
    }
}
 

Благодаря!

Тагове:
0
Programming Basics with C# 02/11/2018 22:33:36
clipro avatar clipro 73 Точки

Здравей,

проблемът не е само в зимата...

Имаш няколко грешки:

- В проверката на броя рибари нямаш ситуация равно на 7 или равно на 12

- пак там, във втория if else няма смисъл - няма как едновременно броят на рибарите да е под 7 и над 11 7 < numberOfFishermen && numberOfFishermen >= 11 и съответно точно това ти чупи цялата логика, защото забива на тази проверка и я валидира. Т.е. проблемът не е в "зимата" а във всяка ситуация на брой рибари над 6

Твоят код оправен https://pastebin.com/0cxTiJVV не съм го тествал в judge, така че може да споделиш резултата след пробата

Още една дребна препоръка: когато парсваш текст от конзолата да го правиш така за да нямаш ядове с малки и главни букви string season = Console.ReadLine().ToLower(); Съответно после всички проверки са само с малки букви

Поздрави,

0
mar1985 avatar mar1985 0 Точки

Здравейте,

Защо judge-a не ми дава повече от 60 точки, като сравнявам моя код с по-горните и не намирам разлика:

Моят код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

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

            int boatPrice = 0;
            double discount = 0;
            double moneyLeft = 0;

            if (season == "Spring")
            {
                boatPrice = 3000;
            }
            if (season == "Summer")
            {
                boatPrice = 4200;
            }

            if (season == "Autumn")
            {
                boatPrice = 4200;
            }
            if (season == "Winter")
            {
                boatPrice = 2600;
            }

            if (numberFishers <= 6)
            {
                discount = boatPrice - (boatPrice * 0.10);

            }
           else if (numberFishers <= 11)
            {
                discount = boatPrice - (boatPrice * 0.15);

            }
            else if (numberFishers >= 12)
            {
                discount = boatPrice - (boatPrice * 0.25);

            }

            if (season != "Autumn")
            {
                if (numberFishers % 2 == 0)
                {
                    discount = boatPrice - (boatPrice * 0.05);

                }

            }

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

0
The_assassin avatar The_assassin 158 Точки

Опитай, като смениш boatPrice на double.

И Math.Abs не би трябвало да прави проблем, но е излишно, така че може да го махнеш.

-1
mar1985 avatar mar1985 0 Точки

С тези промени ми дава още по-малко точки......от 60 на 46.....

0
The_assassin avatar The_assassin 158 Точки

Аз сега видях, че Math.Abs го имаш и на втория „принт“, там ти трябва...

0
filipa.i avatar filipa.i 0 Точки

Здравейте, и за получавам 60 точки в judge. Ето кода ми: https://pastebin.com/F59ZvXXr

0
wealle avatar wealle 1 Точки

Някой би ли ме посъветвал къде греша?

https://pastebin.com/rH2WeLjc


Получавам максимум 86 в Judge.

 

edit:  След няколко часа си открих грешката. Накрая бюджета трябва да е по голям или равен ...а не само по-голям. 

0
03/07/2019 22:36:50
knoteva avatar knoteva 1081 Точки

Здравей,

budget >= total

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