Професионална програма
Loading...
+ Нов въпрос
EvgeniJD avatar EvgeniJD 36 Точки

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 330 Точки

Второто решение е доста по-добро,но не виждам причина 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 330 Точки

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

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

 

 

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

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

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

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

0