Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

gokata2000 avatar gokata2000 1 Точки

Проблем с изпитна задача

Здравейте! Не мога да открия каква е грешката в judge. https://softuni.bg/downloads/svn/programming-basics/2018-06/Retake%20Exam/02.%20GoingHome.pdf задачата. 

Моя код:

using System;

namespace em
{
    class Program
    {
        static void Main(string[] args)
        {
            int kilometers = int.Parse(Console.ReadLine());
            int razhodGorivo = int.Parse(Console.ReadLine());
            double benzinliturcena = double.Parse(Console.ReadLine());
            int pechalbaturnir = int.Parse(Console.ReadLine());
            double a = 0;
            int razhodKola = kilometers * razhodGorivo / kilometers;
            double total = razhodKola * benzinliturcena;
            int delba = pechalbaturnir/5;
            if (pechalbaturnir >= total)
            {
                Console.WriteLine($"You can go home. {pechalbaturnir-total :f2} money left.");
            }
            else if (pechalbaturnir < total)
            {
                a = (a + pechalbaturnir) / 5;
                Console.WriteLine($"Sorry, you cannot go home. Each will receive {a :f2} money.");

            }

        }
    }
}

Проблема е явно с променливите, но не мога да разбера какъв точно.

Тагове:
0
Programming Basics
anton_mironov avatar anton_mironov 19 Точки

Здравей колега!

Проблема идва от този ред: 

int razhodKola = kilometers * razhodGorivo / kilometers;

Тази променлива трябва да запазва разхода на 100км!

Заблудил си се от първия нулев тест, където километрите са 100.

Не делиш по разстоянието, а на 100.

Препоръки:

1. Опитвай се отсега да кръщаваш променливите на английски. След време, живот и здраве ще кодиш само на английски и трябва всеки дев по света да може да разбере името(където трябва да се подразбира какво прави/държи тази променлива).

2. Започвай всяка нова дума в кръщаването на променливите с главна буква (benzinliturcena = gasolinePricePerLiter)

3. В if-а правилно използваш сравнението >= и п този начин остава само една друга вероятност (<). В такъв случай използвай просто else, без да добавяш условие.

4. Когато ще извършваш математически действия с променливи, гледай задължително да са от един тип! В случая всички числови променливи преспокойно ги направи double. Целочислените, парснати към double просто ще си добавят нули след запетаята.

5. В else конструкцията, петимата герои няма да харчат парите, а ще си ги разделят. Тук интересното е, че пак пресмяташ, при положение, че по-горе вече си го сметнал и запазил в променливата "delba". Забележи, че тук също ще имаш exception, защото запазваш уравнението в тип int (ако печалбата не се дели на 5 без остатък? Примерно печалбата е 6, разделено на 5 = 1.2 и няма как да влезе в целочислен тип)

Надявам се да бях полезен!
Успех!

 

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