Софтуерно Инженерство
Loading...
+ Нов въпрос
viktor.nikolov avatar viktor.nikolov 9 Точки

Цена за транспорт

Здравейте,на следната задача получавам 83/100 точки.Къде ми е грешката?

Студент трябва да пропътува n километра. Той има избор измежду три вида транспорт:

·        Такси. Начална такса: 0.70 лв. Дневна тарифа: 0.79 лв. / км. Нощна тарифа: 0.90 лв. / км.

·        Автобус. Дневна / нощна тарифа: 0.09 лв. / км. Може да се използва за разстояния минимум 20 км.

·        Влак. Дневна / нощна тарифа: 0.06 лв. / км. Може да се използва за разстояния минимум 100 км.

Напишете програма, която чете броя километри n и период от деня (ден или нощ), въведени от потребителя,  и изчислява цената на най-евтиния транспорт.

Студент трябва да пропътува n километра. Той има избор измежду три вида транспорт:

·        Такси. Начална такса: 0.70 лв. Дневна тарифа: 0.79 лв. / км. Нощна тарифа: 0.90 лв. / км.

·        Автобус. Дневна / нощна тарифа: 0.09 лв. / км. Може да се използва за разстояния минимум 20 км.

·        Влак. Дневна / нощна тарифа: 0.06 лв. / км. Може да се използва за разстояния минимум 100 км.

Напишете програма, която чете броя километри n и период от деня (ден или нощ), въведени от потребителя,  и изчислява цената на най-евтиния транспорт.

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            var n = int.Parse(Console.ReadLine());
            var time = Console.ReadLine();
            if (time == "day")
            {
                if (n < 20)
                {
                    var taxi = (0.79 * n) + 0.70;
                    Console.WriteLine(String.Format("{0:F2}", taxi));
                }
                else if (n >= 20 && n <100)
                {
                    var bus = 0.09 * n;
                    Console.WriteLine(String.Format("{0:F2}", bus));
                }
                else if (n > 100)
                {
                    var train = 0.06 * n;
                    Console.WriteLine(String.Format("{0:F2}", train));
                }

            }
                else if ( time == "night")
            {
                if (n < 20)
                {
                    var taxi = (0.9 * n) + 0.70;
                    Console.WriteLine(String.Format("{0:F2}", taxi));
                }
                else if (n >= 20 && n < 100)
                {
                    var bus = 0.09 * n;
                    Console.WriteLine(String.Format("{0:F2}", bus));
                }
                else if (n > 100)
                {
                    var train = 0.06 * n;
                    Console.WriteLine(String.Format("{0:F2}" ,train));
                }

            }

        }
    }
}

Тагове:
-1
C# Web
Thedi avatar Thedi 198 Точки

Здравей,

Предполагам, че при проверките трябва да слагаш и равно на минималните километри.
Tи в едната проверка проверяваш дали са по-малко от 100, а пък в другата проверяваш дали са повече, а въпроса е какво трябва да се случи ако ти дадат 100 километра ? 

Надявам се да съм бил полезен.

0
04/12/2017 22:57:11
viktor.nikolov avatar viktor.nikolov 9 Точки

Точно от това е.

Благодаря!!!

0
traykova44 avatar traykova44 93 Точки

Защо получавам само 50 т ??

код https://pastebin.com/wdWVJ6a2

0
zlatnata_obuvka avatar zlatnata_obuvka 1 Точки

Нямаш вариант за такси. Ако се пътува под 20 км не "влизам"  в никоя проверка.

0
traykova44 avatar traykova44 93 Точки

Много благодаря!

0