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

08. Scholarship / Стипендия

Това е кода за, който Judge ми дава 93 от 100 точки и има само една грешка. При такъв резултат съм в цайтнот и няма как да разбера къде е грешката. Моля за помощ ако някой може да разбере от къде идва този проблем. Още не мога да схвана логиката на Judge ама това е защото съм бос с кодовете още :(

using System;

namespace SoftUni
{
    class Program
    {
        static void Main()
        {
            double salary = double.Parse(Console.ReadLine());
            double score = double.Parse(Console.ReadLine());
            double minSal = double.Parse(Console.ReadLine());
            //variable input

            double scolarship = 0.00;
            double scolarshipEx = 0.00;
            //scolarship variables definition

            if (salary < minSal && score > 4.50)
            {
                scolarship = Math.Floor(minSal * 0.35);
            }
            else if (score >= 5.50)
            {
                scolarshipEx = Math.Floor(score * 25);
            }
            //scolarship calculation

            if (salary >= minSal && score < 5.50)
            {
                Console.WriteLine("You cannot get a scholarship!");
            }

            else if (salary < minSal && score <= 4.50)
            {
                Console.WriteLine("You cannot get a scholarship!");
            }   
            else
            {
                if (scolarship >= scolarshipEx)
                {
                    Console.WriteLine($"You get a Social scholarship {scolarship} BGN");
                }
                else 
                {
                    Console.WriteLine($"You get a scholarship for excellent results {scolarshipEx} BGN");
                }
            }

        }
    }
}
 

Тагове:
0
Programming Basics with C#
kkaraivanov avatar kkaraivanov 330 Точки

Здравей. Пействам кода ти пренаписан, ще откриеш грешката /в проверките/ сам.

using System;

namespace Scholarship
{
    class Program
    {
        static void Main(string[] args)
        {
            double salary = double.Parse(Console.ReadLine());
            double score = double.Parse(Console.ReadLine());
            double minSal = double.Parse(Console.ReadLine());

            double scolarship = Math.Floor(minSal  * 0.35);
            double scolarshipEx = Math.Ceiling(score * 25);
            double printEscelentScholership = 0;

            if (scolarship  > scolarshipEx )
            {
                printEscelentScholership = scolarship ;
            }
            else
            {
                printEscelentScholership = scolarshipEx ;
            }

            if (salary <= minSal  && score > 4.5 && score < 5.5)
            {
                Console.WriteLine($"You get a Social scholarship {scolarship } BGN");
            }
            else if (salary <= minSal  && score >= 5.5)
            {
                Console.WriteLine($"You get a scholarship for excellent results {printEscelentScholership} BGN");
            }
            else if (salary > minSal  && score >= 5.5)
            {
                Console.WriteLine($"You get a scholarship for excellent results {scolarshipEx } BGN");
            }
            else
            {
                Console.WriteLine("You cannot get a scholarship!");
            }
        }
    }
}

 

0
petrovmitko avatar petrovmitko 119 Точки

Здравей, понеже не намерих условието, ще ти дам 2 съвета за форума.

1 - Първо провери със search-a na сайта дали някой вече не е питал за това. (мисля, че има задаван същия или подобен въпрос като твоя във форума).

2 - Давай възможно най-много информация за това което търсиш - условие на задачата, твоя код(само него си дал, но никой няма да ти помогне така), от кой модул е и от коя лекция е и линкве към тях.

  

0
OgnyanPetranov avatar OgnyanPetranov 11 Точки

Здравей,

1. По-добре ще е да именоваш по-конкретно променливите. Да използваш съкращения не е добра практика, защото прави кода по-трудно четим.

2. Можеш да смяташ директно и двете стипендии след прочитането на входа от конзолата и да избегнеш проверката в началото. Така или иначе в изхода подаваш нужната стипендия.

3. Имаш нужда от първа проверка дали оценката ти е >=5.50, ако е сравняваш с вложена if проверка коя стипендия е по-голяма, за да отпечаташ правилната по условие.

След това имаш проверка какво се случва ако оценката е над 4.50 и приходите са под минималната заплата.

Накрая всичко останало не получава стипендия.

Малко си се оплел в проверки и явно някой граничен случай ти гърми. :-)

Поздрави

0