Задачата Scholarship C#
Здравейте, колеги,
Не успявам да получа 100/100 на задачата Scholarship в Judge. Пробвах с няколко варианта, но макс получавам 75 т.
Ето и кода: https://pastebin.com/CFYzzdja
Моля Ви за насоки :)
Здравейте, колеги,
Не успявам да получа 100/100 на задачата Scholarship в Judge. Пробвах с няколко варианта, но макс получавам 75 т.
Ето и кода: https://pastebin.com/CFYzzdja
Моля Ви за насоки :)
Здравейте, тук може да видите едно подробно решение и да се ориентирате в проверките.
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!");
}
}
}
}
Здравей, това , което виждам на пръв поглед е, че проверките за оценките са ти в if , а не в else if, като алтернативни.
Това е моето решение на Java, но можеш да видиш как са структурирани :-) Успех
https://pastebin.com/v8dNn5Uv
Здравей,
Така мисля, че ще работи правилно: https://pastebin.com/rnYdUiRc
Орязах втория ти вложен if, тъй като, написано така, ще даде стипендия за отличен успех само при такъв над 5.50 (вкл) и доходи по-малки от минималната работна заплата. А трябва да даде тази стипендия само при успех над 5.50 (вкл), независимо от размера на дохода спрямо минималната работна заплата.
В допълнение - ето моя вариант на решението. Помъчих се да я направя само с взетия материал дотук:
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;
}
}
}
}
Здравей,GeoriSv.
Не видях да си предвидил случая на равенство м/у стипендиите.
С пожелания за успех.
Генади
Здравейте, може ли помощ! 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!");
}
}
}
}
Здравей.
Започни от начало като имаш предвид че, двете стипендий се сравняват
само ако: МРЗ > дохида && успеха >= 5,50
С пожелания за успех.
Генади