Loading...
Vardanss avatar Vardanss 0 Точки

Scholarship - Conditional Statements - Programming Basics C#

Както, естествено, се подразбира, имам поблем с кода, някой да има идеи къде греша? 

using System;

namespace scholarShip
{
    class Program
    {
        static void Main(string[] args)
        {
            double incomeBGN = double.Parse(Console.ReadLine());
            double middleSucces = double.Parse(Console.ReadLine());
            double minimalSalary = double.Parse(Console.ReadLine());

            double socialScholarship = Math.Floor(0.35 * minimalSalary);
            double excelletScholarship = Math.Floor(middleSucces * 25);

            if (incomeBGN >= minimalSalary)
            {
                Console.WriteLine("You cannot get a scholarship!");
            }
            else if (middleSucces < 4.50)
            {
                Console.WriteLine("You cannot get a scholarship!");
            }
            else if (middleSucces < 5.50)
            {
                Console.WriteLine($"You get a Social scholarship {socialScholarship} BGN");
            }
            else if (incomeBGN < minimalSalary)
            {
                Console.WriteLine($"You get a Social scholarship {socialScholarship} BGN");
            }
            else if (middleSucces >= 4.50 && incomeBGN < minimalSalary)
            {
                if (socialScholarship >= excelletScholarship)
                {
                    Console.WriteLine($"You get a Social scholarship {socialScholarship} BGN");
                }

            }
            else if (middleSucces >= 5.50)
            {
                Console.WriteLine($"You get a scholarship for excellent results {excelletScholarship} BGN");

                if (socialScholarship > excelletScholarship)
                {
                    Console.WriteLine($"You get a Social scholarship {socialScholarship} BGN");
                }
            }
        }
    }
}
 

 

0
Programming Basics
DennisKostadinov avatar DennisKostadinov 16 Точки

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

напр:

Console.WriteLine($"You get a Social scholarship {socialScholarship:f2} BGN");

0
Vardanss avatar Vardanss 0 Точки

Промених го коренно и Judge ми дава 75 точки. 

using System;

namespace scholarShip
{
    class Program
    {
        static void Main(string[] args)
        {
            double incomeBGN = double.Parse(Console.ReadLine());
            double middleSucces = double.Parse(Console.ReadLine());
            double minimalSalary = double.Parse(Console.ReadLine());

            double socialScholarship = 0.35 * minimalSalary; //math.floor долу
            double excelletScholarship = middleSucces * 25; //math.floor долу

            if (middleSucces < 4.5 || incomeBGN >= minimalSalary)
            {
                Console.WriteLine("You cannot get a scholarship!");
            }
            
            else if (middleSucces >= 5.5)
            {
                if (excelletScholarship >= socialScholarship)
                {
                    Console.WriteLine($"You get a scholarship for excellent results {Math.Floor(excelletScholarship)} BGN");
                }
                else if(socialScholarship > excelletScholarship)
                {
                    Console.WriteLine($"You get a Social scholarship {Math.Floor(socialScholarship)} BGN");
                }
            }

            else if (incomeBGN < minimalSalary && middleSucces >= 4.5)
            {
                Console.WriteLine($"You get a Social scholarship {Math.Floor(socialScholarship)} BGN");
            }

        }
    }
}
 

 

Условието е: 

1.*Стипендии

Учениците могат да кандидатстват за социална стипендия или за стипендия за отличен успех. Изискване за социална стипендия - доход на член от семейството по-малък от минималната работна заплата и успех над 4.5. Размер на социалната стипендия - 35% от минималната работна заплата. Изискване за стипендия за отличен успех - успех над 5.5, включително. Размер на стипендията за отличен успех - успехът на ученика, умножен по коефициент 25.

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

Вход

Потребителят въвежда 3 числа, по едно на ред:

  1. Доход в лева - реално число в интервала [0.00..6000.00]
  2. Среден успех -  реално число в интервала [2.00...6.00]
  3. Минимална работна заплата - реално число в интервала [0.00..1000.00]

Изход

  • Ако ученикът няма право да получава стипендия, се извежда:
  • You cannot get a scholarship!"
  • Ако ученикът има право да получава социална стипендия и тя е по-висока от стипендията за отличен успех:
    "You get a Social scholarship {стойност на стипендия} BGN"
  • Ако ученикът има право да получава стипендия за отличен успех и тя е по-висока или равна по стойност на социалната стипендия за него:
  • "You get a scholarship for excellent results {стойност на стипендията} BGN"

Резултатът се закръгля до по-малкото цяло число.

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

Вход

Изход

Обяснения

480.00

4.60

450.00

You cannot get a scholarship!

Доходът от 480 лв. е по-висок от минималната работна заплата 450 лв. →  ученикът не може да получава социална стипендия.

Успех 4.60 < 5.50 → ученикът не може да получава стипендия за отличен успех.

300.00

5.65

420.00

You get a Social scholarship 147 BGN

300 лв. < 420 лв. и 5.65 >4.50 →  ученикът може да получава социална стипендия 35% * 420 лв. = 147 лв.

Успех 5.65 > 5.50 → ученикът може да получава стипендия за отличен успех 5.65 * 25 = 141.25 лв.

147 лв. > 141.25  лв. → ученикът ще получава социална стипендия.

 

 

0
DennisKostadinov avatar DennisKostadinov 16 Точки

В първият if не трябва да имаш || incomeBGN >= minimalSalary . Сега ако някой има 6,00 и високи приходи пак не получава стипедния, защото е в else не стига до проверката за отличен успех. Тук може да видиш решение, в което освен ако човек не отговаря на условията, дадена стипендия е 0 по default. Двете стипендии се сравняват накрая и ако и двете са различни от 0, се гледа коя е по-висока и се изписва съответно съобщение.

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

0
27/01/2019 10:08:12
Vardanss avatar Vardanss 0 Точки

Благодаря. Размених им местата и даде 93 точки, значи някъде има още една грешка (при тест 14, без да дава подробности).

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