Loading...
GeorgiSv avatar GeorgiSv 2 Точки

Задачата Scholarship C#

Здравейте, колеги,

 

Не успявам да получа 100/100 на задачата Scholarship в Judge. Пробвах с няколко варианта, но макс получавам 75 т.

Ето и кода: https://pastebin.com/CFYzzdja

Моля Ви за насоки :)

 

 

Тагове:
0
Programming Basics 18/02/2019 22:04:01
chrisi2712 avatar chrisi2712 272 Точки

Здравейте, тук може да видите едно подробно решение и да се ориентирате в проверките.

using System;

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

            double socialScholarship = Math.Floor(0.35 * minSalary);
            double gradeScholarship = Math.Floor(25 * grade);

            if (grade>=5.50 && income<=minSalary)
            {
                if (socialScholarship>gradeScholarship)
                {
                    Console.WriteLine($"You get a Social scholarship {socialScholarship} BGN");
                }
                else
                {
                    Console.WriteLine($"You get a scholarship for excellent results {gradeScholarship} BGN");
                }
            }
            else if (grade>=5.50 && income > minSalary)
            {
                Console.WriteLine($"You get a scholarship for excellent results {gradeScholarship} BGN");
            }
            else if (grade>=4.50 && income<=minSalary)
            {
                Console.WriteLine($"You get a Social scholarship {socialScholarship} BGN");
            }
            else if (grade<4.50 && income<=minSalary)
            {
                Console.WriteLine("You cannot get a scholarship!");
            }
            else if (grade<5.50 && income>minSalary)
            {
                Console.WriteLine("You cannot get a scholarship!");
            }
        }
    }
}
 

0
Tspetrova avatar Tspetrova 125 Точки

Здравей, това , което виждам на пръв поглед е, че проверките за оценките са ти в if , а не в else if, като алтернативни.

Това е моето решение на Java, но можеш да видиш как са структурирани :-) Успех

https://pastebin.com/v8dNn5Uv

0
KaloyanEvtimov avatar KaloyanEvtimov 5 Точки

Здравей,

Така мисля, че ще работи правилно: https://pastebin.com/rnYdUiRc

Орязах втория ти вложен if, тъй като, написано така, ще даде стипендия за отличен успех само при такъв над 5.50 (вкл) и доходи по-малки от минималната работна заплата. А трябва да даде тази стипендия само при успех над 5.50 (вкл), независимо от размера на дохода спрямо минималната работна заплата.

0
KaloyanEvtimov avatar KaloyanEvtimov 5 Точки

В допълнение - ето моя вариант на решението. Помъчих се да я направя само с взетия материал дотук:

 

using System;
 
namespace ExercizeScholarship
{
    class Program
    {
        static void Main(string[] args)
        {
            double income = double.Parse(Console.ReadLine());
            double grade = double.Parse(Console.ReadLine());
            double salary = double.Parse(Console.ReadLine());
 
            double flag = 5.50 - grade;
 
            int a = 0;
            int b = 0;
 
            if(flag<=0)
            {
                b = 1;
            }
            else if(flag>=1)
            {
                b = 0;
            }
            else
            {
                b = -1;
            }
 
            if(income<salary)
            {
                a = 2;
            }
            else
            {
                a = 1;
            }
 
            switch(a*b)
            {
                case 2:
                    if(grade * 25 >= salary * 0.35)
                    {
                        Console.WriteLine($"You get a scholarship for excellent results {Math.Floor(grade * 25)} BGN");
                    }
                    else
                    {
                        Console.WriteLine($"You get a Social scholarship {Math.Floor(salary * 0.35)} BGN");
                    }
                    break;
                case 1:
                    Console.WriteLine($"You get a scholarship for excellent results {Math.Floor(grade * 25)} BGN");
                    break;
                case -2:
                    Console.WriteLine($"You get a Social scholarship {Math.Floor(salary * 0.35)} BGN");
                    break;
                default:
                    Console.WriteLine("You cannot get a scholarship!");
                    break;
            }
 
        }
    }
}

0
gim13 avatar gim13 8 Точки

Здравей,GeoriSv.

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

С пожелания за успех.

Генади

 

 

 

 

0
anizko avatar anizko 1 Точки

Здравейте, може ли помощ! 87/100 ми излиза.

using System;

namespace Scholarship
{
    class Program
    {
        static void Main(string[] args)
        {

            double Dohod = double.Parse(Console.ReadLine());
            double Uspeh = double.Parse(Console.ReadLine());
            double MRZ = double.Parse(Console.ReadLine());

            double StipendiaSoc  = Math.Floor(MRZ * 35 / 100);
            double StipendiaExll = Math.Floor(Uspeh * 25);

            if ((Dohod <= MRZ) && (Uspeh >= 4.50))
            {
                if (StipendiaExll>=StipendiaSoc)
                {
                    Console.WriteLine($"You get a scholarship for excellent results {StipendiaExll} BGN");
                }
                else
                {
                    Console.WriteLine($"You get a Social scholarship {StipendiaSoc} BGN");
                }
            }
            else if (Uspeh >= 5.50)
            {
                Console.WriteLine($"You get a scholarship for excellent results {StipendiaExll} BGN");
            }

            else
            {
                Console.WriteLine("You cannot get a scholarship!");
            }
           

            
        }
    }
}
 

0
gim13 avatar gim13 8 Точки

Здравей.

Започни от начало като имаш предвид че, двете стипендий се сравняват

само ако:  МРЗ  > дохида   &&   успеха >= 5,50 

 

С пожелания за успех.

Генади

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