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
The_assassin avatar The_assassin 158 Точки

Според мене, тези трябва да са така:

(7 <= numberOfFishermen && numberOfFishermen <= 11)

(numberOfFishermen >= 12)

(7 < numberOfFishermen && numberOfFishermen >= 11)

 (numberOfFishermen > 12)

0
02/11/2018 22:47:07
Petya_koleva avatar Petya_koleva 104 Точки

Предният код, беше така и не стана

0
03/11/2018 03:02:11
The_assassin avatar The_assassin 158 Точки

Това е грешно: >= 11, знакът трябва да е на обратно: <, но и равенствата със сигурност трябва да ги има по условие, а и при мене така излизат верни всички примерни входове. Би ли проверила отново, моля! 

0
03/11/2018 08:37:40
Petya_koleva avatar Petya_koleva 104 Точки

Да в бързината съм го объркала, дори не съм и видяла, че е написано грешно, но ми дава 80 точки, явно имам и друга грешка, ще я потърся по внимателно.

0
emo.999 avatar emo.999 399 Точки

Здравей, ще е добре ако дадеш условие.

0
Petya_koleva avatar Petya_koleva 104 Точки

6задача

https://softuni.bg/trainings/resources/officedocument/35582/exercise-problem-descriptions-programming-basics-with-csharp-october-2018/2153

0
The_assassin avatar The_assassin 158 Точки

Тя го е дала. Условието е „скрито“ в заглавието на темата. Ако на някого не му е ясно какво е то, би следвало да не взима отношение, толкова е просто...

0
emo.999 avatar emo.999 399 Точки

Объркала си едната проверка за броя на рибарите. На тези задачи с условните конструкции внимавай за знаците и диапазоните които са дадени по условие и всичко ще е наред. :)

Ето го решението ти оправено: https://pastebin.com/v4HnPV8V

Дава 100/100

0
03/11/2018 09:32:25
Petya_koleva avatar Petya_koleva 104 Точки

О ДА , Благодаря! Трябва да съм по внимателна, но все бързам.

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