, пожалуйста, помогите мне со следующим кодом. Сам код взят из UriOnlineJudge (https://www.urionlinejudge.com.br/judge/en/problems/view/1051), но после многих часов, потраченных на выяснение проблемы, которую мне пришлось решить на этом сайте. Во-первых, это:
double sal = 0.0, t8 = 0.0, t18 = 0.0, t28 = 0.0;
sal = double.Parse(Console.ReadLine());
if(sal <= 2000.0)
{
Console.WriteLine("Isento");
}else if( 2000.0 < sal && sal <= 3000.0)
{
t8 = ((sal - 2000.00) * 0.08);
Console.WriteLine("R$ " + String.Format("{0:F2}", t8));
} else if (3000.0 < sal && sal <= 4500.0)
{
t18 = ((sal - 3000.00) * 0.18 + 1000.00 * 0.08);
Console.WriteLine("R$ " + String.Format("{0:F2}", t18));
}
else
{
t28 = ((sal - 4500.00) * 0.28 + 1500.00 * 0.18 + 1000.00 * 0.08);
Console.WriteLine("R$ " + String.Format("{0:F2}", t28));
}
Console.ReadLine();
После нескольких часов размышлений я решил сделать его "чище" (меньше строк) и повторил это так, и это удивительно сработало, но я все еще не понимал, почему это то, что для меня они одинаковы, второй это:
double sal = 0.0, t8 = 0.0, t18 = 0.0, t28 = 0.0;
sal = double.Parse(Console.ReadLine());
if(sal <= 2000.0)
{
Console.WriteLine("Isento");
}else if( 2000.0 < sal && sal <= 3000.0)
{
sal = sal - 2000.0;
t8 = sal * 8.0 / 100.0;
t8 = sal + t8;
Console.WriteLine("R$ " + String.Format("{0:0.00}", t8));
} else if (3000.0 < sal && sal <= 4500.0)
{
sal = sal - 3000.0;
t8 = 1000.0 * 8.0 / 100.0;
t18 = sal;
t18 = t18 * 18.0 / 100.0;
t18 = t18 + t8;
Console.WriteLine("R$ " + String.Format("{0:0.00}", t18));
}
else
{
sal = sal - 4500.0;
t8 = 1000.0 * 8.0 / 100.0;
t18 = 1500.0 * 18.0 / 100.0;
t28 = sal;
t28 = t28 * 28.0 / 100.0;
t28 = t28 + t18 + t8;
Console.WriteLine("R$ " + String.Format("{0:0.00}", t28));
}
Console.ReadLine();
Теперь я проверял их туда-сюда, и они показывают те же результаты, но г-н. Компилятор Ури продолжает показывать мне, что второй код все еще на 5% неверен, прошу вас, помогите найти ошибку в моих путях.