Loading...
R.Tsvetkova avatar R.Tsvetkova 1 Точки

Задача: "Ски почивка"

Здравейте, от няколко дни се опитвам да реша тази задача. Въпросът ми е, защо priceNights не взима променената стойност, която съм задала в if-a?

 

using System;

namespace SkiTrip
{
    class Program
    {
        static void Main(string[] args)
        {

            int days = int.Parse(Console.ReadLine());
            string roomType = Console.ReadLine();
            string opinion = Console.ReadLine();

            //1. да наерим крайната цена = брой нощувки * цена за 1 нощувка
            //брой нощувки = дни -1
            //цена за една нощувка = ? зависи от типана стаята

            int nights = days - 1;
            double priceNights = 0;

            

            if (roomType == "room for one person")
            {
                priceNights = 18;
            }

         double totalPrice = nights * priceNights;

            if (roomType == "apartment")
            {
                priceNights = 25; //крайна цена
                //намалението
                if (days < 10)
                {
                    totalPrice = totalPrice - 0.30 * totalPrice;
                }
                else if ((days >= 10) && (days <= 15))
                {
                    totalPrice = totalPrice - 0.35 * totalPrice;
                }
                else if (days > 15)
                {
                    totalPrice = totalPrice - 0.50 * totalPrice;
                }

            }
            else if (roomType == "president apartment")
            {
                priceNights = 35;//крайна цена
                //намалението

                if (days < 10)
                {
                    totalPrice = totalPrice - 0.10 * totalPrice; // totalPrice * 0.9;
                }
                else if ((days >= 10) && (days <= 15))
                {
                    totalPrice = totalPrice - 0.15 * totalPrice; //totalPrice * 0.85;
                }
                else if (days > 15)
                {
                    totalPrice = totalPrice - 0.20 * totalPrice; // totalPrice * 0.8;
                }
            }

            


            if (opinion == "positive")
            {
                totalPrice = totalPrice + 0.25 * totalPrice;
            }
            else if (opinion == "negative")
            {
                totalPrice = totalPrice - 0.10 * totalPrice;
            }

            Console.WriteLine($"{totalPrice:F2}");

        }
    }
}
 

Благодаря!

Тагове:
0
Module: C# Advanced
knoteva avatar knoteva 1081 Точки

Здравей,

Взима я. Просто, когато стаята е апартамент или президенски апартамент сле priceNights = 25/35 трябва  да добавиш totalPrice = nights * priceNights; 

0
R.Tsvetkova avatar R.Tsvetkova 1 Точки

Благодаря ти! Срам ме е да си призная колко време отделих за да открия грешката, дори при дебъгване не се сетих blush

1
dkd_9 avatar dkd_9 1 Точки

Нямам условието така че не мога да кажа със сигурност но има 2 неща които трябва да погледнеш

int nights = days - 1;
            double priceNights = 0;



            if (roomType == "room for one person")
            {
                priceNights = 18;
            }

            double totalPrice = nights * priceNights;

            if (roomType == "apartment")

първо че ако стигне до последния if който копирах
или totalPrice ще е 0 (по долу ще имаш
totalPrice = totalPrice - 0.30 * totalPrice;  =>   totalPrice = 0 - 0.3 * 0 = 0 )
или roomType ще е
"room for one person" (няма да влезе в никой от следващите if-ове)

второто че ползваш
nights  само на 1 място (тябва да имам условието за да знам дали е умишлено)

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