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

Задачата Scholarship C#

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

 

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

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

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

 

 

Тагове:
0
Основи на програмирането 18/02/2019 22:04:01
chrisi2712 avatar chrisi2712 268 Точки

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

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 126 Точки

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

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

https://pastebin.com/v8dNn5Uv

0
KaloyanEvtimov avatar KaloyanEvtimov 3 Точки

Здравей,

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

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

0
KaloyanEvtimov avatar KaloyanEvtimov 3 Точки

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

 

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 5 Точки

Здравей,GeoriSv.

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

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

Генади

 

 

 

 

0
anizko avatar anizko 0 Точки

Здравейте, може ли помощ! 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 5 Точки

Здравей.

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

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

 

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

Генади

0