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

Къде греша ?

Става въпрос за задача  8 .Scholarship  от " Упражнение : условни конструкции" .

Тествам задачата с всички възможни варианти за входни данни и ми дава правилни резултати , но в Judge ми дава 93 от 100 точки .

Ще съм Ви много благодарен да ми кажете къде греша :

using System;

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

            double socialScholarship = Math.Floor(minimalSalary * 0.35);
            double execellentSuccessScholarship = Math.Floor(averageSuccess * 25);

            if (income < minimalSalary)

            {
                if (averageSuccess >= 5.50)

                {
                    if (execellentSuccessScholarship >= socialScholarship)

                    {

                        Console.WriteLine($"You get a scholarship for excellent results {execellentSuccessScholarship} BGN");

                    }

                    else if (execellentSuccessScholarship < socialScholarship)

                    {

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

                    }

                }

                if (averageSuccess > 4.50 && averageSuccess < 5.50)

                {

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

                }

                else if (averageSuccess < 4.50)

                {

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

                }

            }

            if (income > minimalSalary)

            {

                if (averageSuccess >= 5.50)

                {

                    Console.WriteLine($"You get a scholarship for excellent results {execellentSuccessScholarship} BGN");

                }

                else

                {

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

                }

            }

        }

    }

}

Грешката която ми дава в Judge е само на test #9 

Test #9 (Incorrect answer)

The process executing your submission for this test may not have received the output successfully. Please try to submit again the same solution. If the result does not change, then search the error in the submission itself.

пробвах няколко пъти , но все тази грешка

 

Тагове:
0
Programming Basics with C# 27/02/2021 16:42:31
svephoto avatar svephoto 1191 Точки
Best Answer

Здравей, promusic1974,

 

В последната част от кода

 

            if (income > minimalSalary)
            {
                if (averageSuccess >= 5.50)
                {
                    Console.WriteLine($"You get a scholarship for excellent results {execellentSuccessScholarship} BGN");
                }
                else
                {
                    Console.WriteLine("You cannot get a scholarship!");
                }
            }

 

в първото условие if (income > minimalSalary) или сложи = след >, или просто замести условието с else. След това вече ще ти даде 100/100.

 

Успех!

1
27/02/2021 19:41:28
kkaraivanov avatar kkaraivanov 486 Точки

Здравей. Пробвай, като промениш double execellentSuccessScholarship = Math.Floor(averageSuccess * 25); на double execellentSuccessScholarship = Math.Ceiling(averageSuccess * 25);. Ако и така не се получи, ще ти пратя корекцията на if-овете.

0
promusic1974 avatar promusic1974 2 Точки

Не се получава с  Math.Ceiling , дава ми доста грешки ( 75 точки в judge ), а и в условието пише да закръглим до най малкото цяло число така че би трябвало да е с Math.Floor

0
kkaraivanov avatar kkaraivanov 486 Точки

Ето коригиран кода ти. Тествай

double income = double.Parse(Console.ReadLine());
            double averageSuccess = double.Parse(Console.ReadLine());
            double minimalSalary = double.Parse(Console.ReadLine());

            double socialScholarship = Math.Floor(minimalSalary * 0.35);
            double execellentSuccessScholarship = Math.Ceiling(averageSuccess * 25);
            double printEscelentScholership = 0;

            if (socialScholarship > execellentSuccessScholarship)
            {
                printEscelentScholership = socialScholarship;
            }
            else
            {
                printEscelentScholership = execellentSuccessScholarship;
            }

            if (income <= minimalSalary && averageSuccess > 4.5 && averageSuccess < 5.5)
            {
                Console.WriteLine($"You get a Social scholarship {socialScholarship} BGN");
            }
            else if (income <= minimalSalary && averageSuccess >= 5.5)
            {
                Console.WriteLine($"You get a scholarship for excellent results {printEscelentScholership} BGN");
            }
            else if (income > minimalSalary && averageSuccess >= 5.5)
            {
                Console.WriteLine($"You get a scholarship for excellent results {execellentSuccessScholarship} BGN");
            }
            else
            {
                Console.WriteLine("You cannot get a scholarship!");
            }

 

0
promusic1974 avatar promusic1974 2 Точки

Благодаря за кода , но и това не минава Judge , само 81 точки 

0
promusic1974 avatar promusic1974 2 Точки

Открих решение , минава 100 /100 .

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

Всичко е точно и Judge  дава 100 / 100  , но 

ако в един момент дохода и минималната заплата станат по големи числа и са равни , примерно 

доход = 500

успех = 5.50

мин. заплата = 500

Ще започне да ни извежда резултат , че трябва да получим социална стипендия , а реално при равни доход и минимална заплата  трябва да получим единствено стипендия за отличен резултат

using System;

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

            double socialScholarship = Math.Floor(minimalSalary * 0.35);
            double execellentSuccessScholarship = Math.Floor(averageSuccess * 25);

 


            if (averageSuccess >= 5.50 && income <= minimalSalary)

            {
                if (execellentSuccessScholarship >= socialScholarship)

                {

                    Console.WriteLine($"You get a scholarship for excellent results {execellentSuccessScholarship} BGN");

                }

                else if (execellentSuccessScholarship < socialScholarship)

                {

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

                }

            }

            if (averageSuccess > 4.50 && averageSuccess < 5.50 && income < minimalSalary)

            {

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

            }

            else if (averageSuccess < 5.50 && income <= minimalSalary)

            {

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

            }

            if (income > minimalSalary)

            {

                if (averageSuccess >= 5.50)

                {

                    Console.WriteLine($"You get a scholarship for excellent results {execellentSuccessScholarship} BGN");

                }

                else

                {

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

                }

            }

        }

    }

}

0
promusic1974 avatar promusic1974 2 Точки

Това вече работи перфектно . Дава 100 /100 в Judge . Странното е , че и предния код ми дава 100 /100 , а при големи и равни стойности  на доход и мин. заплата започва да дава некоректен резултат ...

 

using System;

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

            double income = double.Parse(Console.ReadLine());
            double averageSuccess = double.Parse(Console.ReadLine());
            double minimalSalary = double.Parse(Console.ReadLine());
            double socialScholarship = Math.Floor(minimalSalary * 0.35);
            double execellentSuccessScholarship = Math.Floor(averageSuccess * 25);
            if (income < minimalSalary)
            {
                if (averageSuccess >= 5.50)
                {
                    if (execellentSuccessScholarship >= socialScholarship)
                    {
                        Console.WriteLine($"You get a scholarship for excellent results {execellentSuccessScholarship} BGN");
                    }
                    else if (execellentSuccessScholarship < socialScholarship)
                    {
                        Console.WriteLine($"You get a Social scholarship {socialScholarship} BGN");
                    }
                }
                if (averageSuccess > 4.50 && averageSuccess < 5.50)
                {
                    Console.WriteLine($"You get a Social scholarship {socialScholarship} BGN");
                }
                else if (averageSuccess <= 4.50)
                {
                    Console.WriteLine("You cannot get a scholarship!");
                }
            }
            if (income >= minimalSalary)
            {
                if (averageSuccess >= 5.50)
                {
                    Console.WriteLine($"You get a scholarship for excellent results {execellentSuccessScholarship} BGN");
                }
                else
                {
                    Console.WriteLine("You cannot get a scholarship!");
                }
            }

        }

    }

}

 

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