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

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

Здравейте, някой може ли да ми помогне да си открия грешката? :)

Това е моето решение, дава ми 18 / 100.

 

using System;
                    
public class Program
{
    public static void Main()
    {
        double incomeInLeva = double.Parse(Console.ReadLine());
        double averageGrade = double.Parse(Console.ReadLine());
        double minWorkSalary = double.Parse(Console.ReadLine());
        
        double socialScholarship = Math.Floor(0.35 * minWorkSalary);
        double ExcellentScholarship = Math.Floor(averageGrade * 25);
        
        if (incomeInLeva > minWorkSalary && averageGrade < 4.50 )
        {
            Console.WriteLine("You cannot get a scholarship!");
        }
        else if (incomeInLeva < minWorkSalary  && socialScholarship > ExcellentScholarship && averageGrade > 4.50)
        {
            Console.WriteLine("You get a Social scholarship {0} BGN",socialScholarship);
        }
        else if (averageGrade >= ExcellentScholarship && ExcellentScholarship >= socialScholarship)
        {
            Console.WriteLine("You get a scholarship for excellent results Math.Floor{0} BGN", ExcellentScholarship);
        }
        

        
        
        
    }
}

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

else if (averageGrade >= ExcellentScholarship && ExcellentScholarship >= socialScholarship)   ->> Това трябва да е така:

else if (averageGrade >= 5.50) 

а  след това (или преди това) можеш да пуснеш проверка дали е по-голяма или по-малка от социалната.

И според мен "Без стипендия" е най-добре да го оставиш в "else" - накрая/ ако не отговаря на никакви други условия. Ето ти кодче, което работи - не е перфектно, но дава 100% резултат:

using System;

namespace schoolarship
{
    class Program
    {
        static void Main(string[] args)
        {
            double income = double.Parse(Console.ReadLine());
            double grade = double.Parse(Console.ReadLine());
            double minCalary = double.Parse(Console.ReadLine());

            double socialMoney = minCalary * 0.35;
            double gradeMoney = grade * 25;

            if (grade >= 5.5)
            {
                if (gradeMoney < socialMoney && income < minCalary)
                {
                    Console.WriteLine($"You get a Social scholarship {Math.Floor(socialMoney)} BGN");
                }
                else
                {
                    Console.WriteLine($"You get a scholarship for excellent results {Math.Floor(gradeMoney)} BGN");
                }
            }
            else if (grade > 4.5 && income < minCalary)
            {
                Console.WriteLine($"You get a Social scholarship {Math.Floor(socialMoney)} BGN");
            }
            else
            {
                Console.WriteLine("You cannot get a scholarship!");
            }
        }
    }
}

0
21/01/2019 18:39:55
EleonoraTsakova avatar EleonoraTsakova 0 Точки

Здравей, пренаписах кода, както ми каза и вече е окей.

Ноо едно нещо не разбирам, по заданието " Ако ученикът има право да получава социална стипендия и тя е по-висока от стипендията за отличен успех..."  и не виждам къде в решението добавяме и това условие, че соц. стипендия е по-висока от отличната, или в случая е излишно? 

0
chichovoto avatar chichovoto 31 Точки

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

Дефакто в моя код това е проверено при "стипендия за отличен успех".

"Ако ученикът има право да получава социална стипендия и стипендия за отличен успех и тя е по-висока от стипендията за отличен успех:" - по някакъв такъв начин трябва да изглежда условието според мен...

0
EleonoraTsakova avatar EleonoraTsakova 0 Точки

Да, мерси за помощта :)

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