Софтуерно Инженерство
Loading...
Kiril78 avatar Kiril78 -2 Точки

Задачка Transport Price

Здравейте на всички  , опитах Задачка Transport Price :

Студент трябва да пропътува n километра. Той има избор измежду три вида транспорт:
•    Такси. Начална такса: 0.70 лв. Дневна тарифа: 0.79 лв. / км. Нощна тарифа: 0.90 лв. / км.
•    Автобус. Дневна / нощна тарифа: 0.09 лв. / км. Може да се използва за разстояния минимум 20 км.
•    Влак. Дневна / нощна тарифа: 0.06 лв. / км. Може да се използва за разстояния минимум 100 км.
Напишете програма, която въвежда броя километри n и период от деня (ден или нощ) и изчислява цената на най-евтиния транспорт.
Вход
От конзолата се четат два реда:
•    Първият ред съдържа числото n – брой километри – цяло число в интервала [1…5000].
•    Вторият ред съдържа дума “day” или “night” – пътуване през деня или през нощта.
Изход
Да се отпечата на конзолата най-ниската цена за посочения брой километри.

Моето решение :

using System;
namespace Transport_Price
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            string timeOfDay = Console.ReadLine();

            double taxiKmPrice = 0.79;//dnevna
            if (timeOfDay == "night")
            {
                taxiKmPrice = 0.90;//taxi naght
            }
            double taxiPrice = 0;
            double busPrice = 0;
            double trainPrice = 0;

            if (n < 20)
            {
                taxiPrice = taxiKmPrice * n + 0.70;//nachalna
            }
            else if (n >= 20 && n < 100)//pod && nad
            {
                busPrice = n * 0.09;//bus naght
            }
            else if (n >= 100)
            {
                trainPrice = n * 0.06;//vlak naght
            }
            Console.WriteLine("{0}{1}{2} ", taxiPrice, busPrice, trainPrice);
        }
    }
}

Не успявам да я реша (Math.Round = ? ,2) до 2рата десетична , не съдете строго опитвам се да се науча ,

 

 

 

Тагове:
delian1914 avatar delian1914 92 Точки

Навързал си отпечатването на един ред и от там идва объркването. Не трябва ли по - скоро да е в If-овете?


            if (n < 20)
            {
                taxiPrice = taxiKmPrice * n + 0.70;//nachalna
                Console.WriteLine("{0:f2}", taxiPrice);
            }
            else if (n >= 20 && n < 100)//pod && nad
            {
                busPrice = n * 0.09;//bus naght
                Console.WriteLine("{0:f2}", busPrice);

            }
            else if (n >= 100)
            {
                trainPrice = n * 0.06;//vlak naght
                Console.WriteLine("{0:f2}", trainPrice);

            }

 

0
Iv_Konov avatar Iv_Konov 21 Точки

Здравей, Kiril78,
според мен задачата иска само един отговор, и не би следвало проблемът да е във форматирането (поне няма указание за форматиране).


"Да се отпечата на конзолата най-ниската цена за посочения брой километри."


т.е. най-добрата цена от транспорт от такси, автобус или влак (едно от трите, не резултат от трите).

 

Поздрави,
Иван

 

п.с. имам решение на задачата (решавал съм я), но по-добре се побори сам още малко, ако отново не смогнеш, ще ти дам вариант с по-общи зная като за пред изпит "Programming Basics" :) 

0
12/02/2019 16:42:37