Scholarship задача.
Ако може някой да помогне , да каже къде съм объркал , че в judge ми дава 75 / 100 и не мога да разбера защо.
using System;
namespace zadacha7
{
class Program
{
static void Main()
{
double income = double.Parse(Console.ReadLine());
double averageGrades = double.Parse(Console.ReadLine());
double minSalary = double.Parse(Console.ReadLine());
double socialScholarship = minSalary * 0.35;
double excellentScholarship = averageGrades * 25;
if (income > minSalary && averageGrades < 5.50)
{
Console.WriteLine("You cannot get a scholarship!");
}
if (income < minSalary && averageGrades > 4.50)
{
Console.WriteLine($"You get a Social scholarship {Math.Floor(socialScholarship)} BGN");
}
else if (income > minSalary && averageGrades >= 5.50)
{
Console.WriteLine($"You get a scholarship for excellent results {Math.Floor(excellentScholarship)} BGN");
}
else if (income < minSalary && averageGrades >= 5.50)
{
if (socialScholarship > excellentScholarship)
{
Console.WriteLine($"You get a Social scholarship {Math.Floor(socialScholarship)} BGN");
}
else if (excellentScholarship >= socialScholarship)
{
Console.WriteLine($"You get a scholarship for excellent results {Math.Floor(excellentScholarship)} BGN");
}
}
}
}
}
Благодаря! Ето вариант с булеви променливи, който , лично на мен , ми се стори по-лесен.
using System;
namespace zadacha7
{
class Program
{
static void Main()
{
double income = double.Parse(Console.ReadLine());
double averageGrades = double.Parse(Console.ReadLine());
double minSalary = double.Parse(Console.ReadLine());
double socialScholarship = minSalary * 0.35;
double excellentScholarship = averageGrades * 25;
bool isSocialScholarshipActive = false;
bool isExcelentScholarshipActive = false;
if (income < minSalary && averageGrades > 4.50)
{
isSocialScholarshipActive = true;
}
if (averageGrades >= 5.50)
{
isExcelentScholarshipActive = true;
}
if (!isSocialScholarshipActive && !isExcelentScholarshipActive)
{
Console.WriteLine("You cannot get a scholarship!");
}
if (isSocialScholarshipActive && !isExcelentScholarshipActive)
{
Console.WriteLine($"You get a Social scholarship {Math.Floor(socialScholarship)} BGN");
}
else if (!isSocialScholarshipActive && isExcelentScholarshipActive)
{
Console.WriteLine($"You get a scholarship for excellent results {Math.Floor(excellentScholarship)} BGN");
}
else if (isSocialScholarshipActive && isExcelentScholarshipActive)
{
if (socialScholarship > excellentScholarship)
{
Console.WriteLine($"You get a Social scholarship {Math.Floor(socialScholarship)} BGN");
}
else if (excellentScholarship >= socialScholarship)
{
Console.WriteLine($"You get a scholarship for excellent results {Math.Floor(excellentScholarship)} BGN");
}
}
}
}
}
Не знам защо всички правите толкова много проверки на тази задача. Преди няколко дни бях дал едно решение на C++ ето тук. Това е същия код, но написан на C# като дори имената на променливите са същите като твоите
Супер. Много благодаря и на двама ви , за отговорите! Задачата беше страшно полезна за мен и споделянето , също. Помогна ми да упражня мисленето си логически и да разсъждавам латерално ,виждайки различните начини да решиш даден проблем .