Професионална програма
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 1078 Точки

Здравей,

Взима я. Просто, когато стаята е апартамент или президенски апартамент сле 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