Затруднение при задача *Стипендии
Здравейте колеги,
Дава ми 75% на долното решение в Judge и не мога да разбера къде може да са грешките, понеже в Judge ми излиза само (Incorrect answer).
Благодаря за съдействието.
Условие!
Учениците могат да кандидатстват за социална стипендия или за стипендия за отличен успех. Изискване за социална стипендия - доход на член от семейството по-малък от минималната работна заплата и успех над 4.5. Размер на социалната стипендия - 35% от минималната работна заплата. Изискване за стипендия за отличен успех - успех над 5.5, включително. Размер на стипендията за отличен успех - успехът на ученика, умножен по коефициент 25.
Напишете програма, която при въведени доход, успех и минимална работна заплата, дава информация дали ученик има право да получава стипендия, и стойността на стипендията, която е по-висока за него.
Вход
Потребителят въвежда 3 числа, по едно на ред:
- Доход в лева - реално число в интервала [0.00..6000.00]
- Среден успех - реално число в интервала [2.00...6.00]
- Минимална работна заплата - реално число в интервала [0.00..1000.00]
Изход
- Ако ученикът няма право да получава стипендия, се извежда:
- You cannot get a scholarship!"
- Ако ученикът има право да получава социална стипендия и тя е по-висока от стипендията за отличен успех:
"You get a Social scholarship {стойност на стипендия} BGN" - Ако ученикът има право да получава стипендия за отличен успех и тя е по-висока или равна по стойност на социалната стипендия за него:
- "{стойност на стипендията} BGN"
Резултатът се закръгля до по-малкото цяло число.
Примерен вход и изход
Вход |
Изход |
Обяснения |
480.00 4.60 450.00 |
You cannot get a scholarship! |
Доходът от 480 лв. е по-висок от минималната работна заплата 450 лв. → ученикът не може да получава социална стипендия. Успех 4.60 < 5.50 → ученикът не може да получава стипендия за отличен успех. |
300.00 5.65 420.00 |
You get a Social scholarship 147 BGN |
300 лв. < 420 лв. и 5.65 >4.50 → ученикът може да получава социална стипендия 35% * 420 лв. = 147 лв. Успех 5.65 > 5.50 → ученикът може да получава стипендия за отличен успех 5.65 * 25 = 141.25 лв. 147 лв. > 141.25 лв. → ученикът ще получава социална стипендия. |
using System;
public class Program
{
public static void Main()
{
double dohod = double.Parse(Console.ReadLine());
double uspeh = double.Parse(Console.ReadLine());
double zaplata = double.Parse(Console.ReadLine());
double stip = uspeh * 25;
double zaplataStip = zaplata * 0.35;
if (dohod > zaplata && uspeh < 5.5 && dohod >=0 && dohod <= 6000 && zaplata >=0 && zaplata <= 1000 && uspeh >=2 && uspeh <=6)
{
Console.WriteLine("You cannot get a scholarship!");
}
else if (dohod < zaplata && uspeh < 5.5 && dohod >=0 && dohod <= 6000 && zaplata >=0 && zaplata <= 1000 && uspeh >=2 && uspeh <=6)
{
Console.Write("You get a Social scholarship ");
Console.Write(Math.Floor(zaplataStip));
Console.WriteLine(" BGN");
}
else if (dohod > zaplata && uspeh > 5.5 && dohod >=0 && dohod <= 6000 && zaplata >=0 && zaplata <= 1000 && uspeh >=2 && uspeh <=6)
{
Console.Write("You get a scholarship for excellent results ");
Console.Write(Math.Floor(stip));
Console.WriteLine(" BGN");
}
else if (dohod < zaplata && uspeh > 5.5 && dohod >=0 && dohod <= 6000 && zaplata >=0 && zaplata <= 1000 && uspeh >=2 && uspeh <=6)
{
if (stip > zaplatax)
{
Console.Write("You get a scholarship for excellent results ");
Console.Write(Math.Floor(stip));
Console.WriteLine(" BGN");
}
else if (stip < zaplatax)
{
Console.Write("You get a Social scholarship ");
Console.Write(Math.Floor(zaplataStip));
Console.WriteLine(" BGN");
}
}
}
}
Здрасти,
Аз я реших по ето този начин :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _7.Scholarships
{
public class Scholarships
{
public static void Main(string[] args)
{
double income = double.Parse(Console.ReadLine());
double averageGrade = double.Parse(Console.ReadLine());
double minSalary = double.Parse(Console.ReadLine());
double socialScolarship = minSalary * 0.35;
double excellenceScolarship = averageGrade * 25;
if (income < minSalary && socialScolarship > excellenceScolarship && averageGrade > 4.50)
{
Console.WriteLine($"You get a Social scholarship {Math.Floor(socialScolarship)} BGN");
}
else if (averageGrade >= 5.50)
{
Console.WriteLine($"You get a scholarship for excellent results {Math.Floor(excellenceScolarship)} BGN");
}
else if (income > minSalary || averageGrade < 5.50)
{
Console.WriteLine("You cannot get a scholarship!");
}
}
}
}
но ми дава 87/100
къде греша ?
Благодаря предварително
Маркираната в червено по-долу добавка увенча с успех усилията ми.
package c_ConditionalStatements; import java.util.Scanner; public class Scholarship { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double Income = Double.parseDouble(scanner.nextLine()); double AvGrade = Double.parseDouble(scanner.nextLine()); double MinSalary = Double.parseDouble(scanner.nextLine()); double SocSch = 0.35 * MinSalary; double GradeSch = 25 * AvGrade; if (AvGrade >= 5.5 & Income < MinSalary & SocSch >= GradeSch) { System.out.printf("You get a Social scholarship %.0f BGN", Math.floor(SocSch)); } else if (AvGrade >= 5.5 & Income < MinSalary & SocSch < GradeSch) { System.out.printf("You get a scholarship for excellent results %.0f BGN", Math.floor(GradeSch)); } else if (AvGrade > 4.5 & Income < MinSalary) { System.out.printf("You get a Social scholarship %.0f BGN", Math.floor(SocSch)); } else if (AvGrade >= 5.5){ System.out.printf("You get a scholarship for excellent results %.0f BGN", Math.floor(GradeSch)); } else { System.out.println("You cannot get a scholarship!"); } } }