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

Fund C# Basic and Syntax Exercise 03. Vacation. I have 91% in Judge , pls help !

using System;

namespace Vacation
{
    class Program
    {
        static void Main(string[] args)
        {
            int people = int.Parse(Console.ReadLine());
            string group = Console.ReadLine();
            string weekDay = Console.ReadLine();

            double price = 0;
            double otstupka = 0;

            if (group == "Students")
            {
                if (weekDay == "Friday")
                {
                    price = 8.45;
                }
                else if (weekDay == "Saturday")
                {
                    price = 9.80;
                }
                else if (weekDay == "Sunday")
                {
                    price = 10.46;
                }
                price = price * people;

                if (people < 30)
                {
                    Console.WriteLine($"Total price: {price:F2}");
                }
                if (people >= 30)
                {
                    otstupka = price - price * 15 / 100;
                    Console.WriteLine($"Total price: {otstupka:F2}");
                }
            }

            if (group == "Business")
            {
                if (weekDay == "Friday")
                {
                    price = 10.90;
                }
                else if (weekDay == "Saturday")
                {
                    price = 15.60;
                }
                else if (weekDay == "Sunday")
                {
                    price = 16.0;
                }
                price = price * people;

                if (people < 100)
                {
                    Console.WriteLine($"Total price: {price:F2}");
                }

                if (people >= 100)
                {
                    otstupka = (people - 10) * price;
                    Console.WriteLine($"Total price: {otstupka:F2}");
                }
            }

            if (group == "Regular")
            {
                if (weekDay == "Friday")
                {
                    price = 15.0;
                }
                else if (weekDay == "Saturday")
                {
                    price = 20.0;
                }
                else if (weekDay == "Sunday")
                {
                    price = 22.50;
                }
                price = price * people;

                if (people >= 10 && people<= 20)
                {
                    otstupka = price - price * 5 / 100;
                    Console.WriteLine($"Total price: {otstupka:F2}");
                }
                else
                {
                    Console.WriteLine($"Total price: {price:F2}");
                }
            }
        }
    }
}

 

Тагове:
0
Programming Fundamentals 21/05/2019 22:06:06
mark79 avatar mark79 639 Точки

Здравей,

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

Поздрави

0
22/05/2019 07:31:21
JulianJulianov avatar JulianJulianov 9 Точки

Здравей! Не разбрах къде се прави проверката в кода със switch за подадени некоректни входни данни?

Пробвах да подам некоректни данни и в двата варианта написани тук ( с if-ове и switch-a)  и резутата е просто Total price: 0.00. Според мен и двата кода са верни, но джъджа признава само кода със суитча???

0
mark79 avatar mark79 639 Точки

Здравей,

по условие имаш The output should look like that: "Total price: {price}" и нека ти предложа да провериш, когато се подаде на входа некоректни данни за вид на група, какво ще се получи на изхода.

Поздрави :)

 

0
JulianJulianov avatar JulianJulianov 9 Точки

Здравей!  Грешката ти е, че първо  си сметнал цената price = price * people;  и после отстъпката  otstupka = (people - 10) * price;. Това важи само за групата Business! И както знаеш кода запаметява винаги последното, в случая price , който като число е например 160 = 16 * 100; и стигайки до реда с остъпката otstupka = (people - 10) * price; се случва това 14400 = (100 - 10) * 160, което е вярно като математически израз, но не и като логически , нали?  Тук price трябва да е само 16, а не десет пъти повече! Размених им местата и ми даде 100/100.

using System;

namespace _04PrintAndSum
{
    class Program
    {
        static void Main(string[] args)
        {
            int people = int.Parse(Console.ReadLine());
            string group = Console.ReadLine();
            string weekDay = Console.ReadLine();

            double price = 0;
            double otstupka = 0;

            if (group == "Students")
            {
                if (weekDay == "Friday")
                {
                    price = 8.45;
                }
                else if (weekDay == "Saturday")
                {
                    price = 9.80;
                }
                else if (weekDay == "Sunday")
                {
                    price = 10.46;
                }
                price = price * people;

                if (people < 30)
                {
                    Console.WriteLine($"Total price: {price:F2}");
                }
                if (people >= 30)
                {
                    otstupka = price - price * 15 / 100;
                    Console.WriteLine($"Total price: {otstupka:F2}");
                }
            }
            if (group == "Business")
            {
                if (weekDay == "Friday")
                {
                    price = 10.90;
                    if (people >= 100)
                    {
                        otstupka = (people - 10) * price;
                        Console.WriteLine($"Total price: {otstupka:F2}");
                    }
                }
                else if (weekDay == "Saturday")
                {
                    price = 15.60;
                    if (people >= 100)
                    {
                        otstupka = (people - 10) * price;
                        Console.WriteLine($"Total price: {otstupka:F2}");
                    }
                }
                else if (weekDay == "Sunday")
                {
                    price = 16.0;
                    if (people >= 100)
                    {
                        otstupka = (people - 10) * price;
                        Console.WriteLine($"Total price: {otstupka:F2}");
                    }
                }
                price = price * people;
                if (people < 100)
                {
                    Console.WriteLine($"Total price: {price:F2}");
                }
            }
            if (group == "Regular")
            {
                if (weekDay == "Friday")
                {
                    price = 15.0;
                }
                else if (weekDay == "Saturday")
                {
                    price = 20.0;
                }
                else if (weekDay == "Sunday")
                {
                    price = 22.50;
                }
                price = price * people;

                if (people >= 10 && people <= 20)
                {
                    otstupka = price - price * 5 / 100;
                    Console.WriteLine($"Total price: {otstupka:F2}");
                }
                else
                {
                    Console.WriteLine($"Total price: {price:F2}");
                }
            }
        }
    }
}
 

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