Loading...
EvgeniJD avatar EvgeniJD 35 Точки

Fuel Tank - Задача C#

Здравейте!

Някой може ли да ми каже каква е разликата между двата ми кода и защо при първия judge ми дава 85/100 а при втория 100/100.

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

Ето го условието на задачата: 

8.Резервоар за гориво

Напишете програма, която познава дали резервоара на едно превозно средство има нужда от презареждане на горивото или не. От конзолата се четат два редатекст и реално число, на първия ред се чете типа на горивото – текст с възможности: "Diesel", "Gasoline" или "Gas", а на втория литрите гориво, които има в резервоара. Ако литрите гориво са повече или равни на 25, на конзолата да се отпечата "You have enough {вида на горивото}.", ако са по-малко от 25, да се отпечата "Fill your tank with {вида на горивото}!". В случай, че бъде въведено гориво, различно от посоченото, да се отпечата "Invalid fuel!".

Примерен вход и изход

Вход

Изход

Diesel

10

Fill your tank with diesel!

Gasoline

40

You have enough gasoline.

Gas

25

You have enough gas.

Kerosene

200

Invalid fuel!

 

Първия ми код, при който изкарах 85/100 е този:

 

using System;

namespace FuelTankA
{
    class Program
    {
        static void Main(string[] args)
        {
            string fuelType = Console.ReadLine().ToLower();
            int level = int.Parse(Console.ReadLine());


            if (level >= 25)
            {
                if (fuelType == "diesel" || fuelType == "gas" || fuelType == "gasoline")
                {
                    Console.WriteLine($"You have enough {fuelType}.");
                }
                else
                {
                    Console.WriteLine("Invalid fuel!");
                }
            }
            else
            {
                if (fuelType == "diesel" || fuelType == "gas" || fuelType == "gasoline")
                {
                    Console.WriteLine($"Fill your tank with {fuelType}!");
                }
                else
                {
                    Console.WriteLine("Invalid Fuel!");
                }
            }
        }
    }
}
 

А това е кода, който изкара 100/100:

 

using System;

namespace FuelTankA
{
    class Program
    {
        static void Main(string[] args)
        {
            string fuelType = Console.ReadLine().ToLower();
            int level = int.Parse(Console.ReadLine());

            if (fuelType == "diesel" || fuelType == "gas" || fuelType == "gasoline")
            {
                if (level >= 25)
                {
                    Console.WriteLine($"You have enough {fuelType}.");
                }
                else
                {
                    Console.WriteLine($"Fill your tank with {fuelType}!");
                }
            }
            else
            {
                Console.WriteLine("Invalid fuel!");
            }

        }
    }
}
 

0
Programming Basics with C#
krum_43 avatar krum_43 756 Точки

Второто решение е доста по-добро,но не виждам причина judja да ти рвже точки точки от първото.

                                                                            :):):)

0
RTech avatar RTech 20 Точки

Според мен ти дава 85/100, защот 1-2 проверки не са ти верни,

а това най-вероятно се дължи на първия else, според който още тогава ако горивото е по-малко от 25 литра, кодът връща invalid fuel и не чете надолу, където си дефинирал варианта при по-малко от 25 литра и правилно гориво да връща Fill your tank with fuel.

0
krum_43 avatar krum_43 756 Точки

При първият else няма нищо грешно.Там логиката е желязна.Това дали литрите гориво са > или < 25 няма значение при положение,че подаваме невалидно гориво.Тогава печатаме  invalid fuel .Може би е добре да имаме и един  break;

Нямаше да е лошо ако колегата беше дал и линк към judj за да ги тестваме още веднъж.

 

 

0
Bozhidar.Bozhkov avatar Bozhidar.Bozhkov 3 Точки

На първото ти дава 85/100, защото си написал "Invalid Fuel!" на последния else. Смени я с малка буква и ще вземеш 100/100.

1
27/03/2020 18:36:50
krum_43 avatar krum_43 756 Точки

Да,това е грешката.

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