Въпрос Задача 01 - Зеленчукова борса
Здравейте,
Решавам горепосочената задача от Coding 101 exam 26 March 2016. Условието на задачата е:
"Градинар продавал реколтата от градината си на зеленчуковата борса. Продава зеленчуци за N лева на килограм и плодове за M лева за килограм. Напишете програма, която да пресмята приходите от реколтата в евро ( ако приемем, че едно евро е равно на 1.94лв).
Вход
От конзолата се четат 4 числа, по едно на ред:
- Първи ред – Цена за килограм зеленчуци – число с плаваща запетая
- Втори ред – Цена за килограм плодове – число с плаваща запетая
- Трети ред – Общо килограми на зеленчуците – цяло число
- Четвърти ред – Общо килограми на плодовете – цяло число
Ограничения: Всички числа ще са в интервала от 0.00 до 1000.00
Изход
Да се отпечата на конзолата едно число с плаваща запетая: приходите от всички плодове и зеленчуци в евро."
Прилагам в judge.softuni следното решение:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _17.Vegetables
{
class Vegetables
{
static void Main(string[] args)
{
double vegiPrice;
double fruitPrice;
int vegiKG;
int fruitKG;
try
{
vegiPrice = double.Parse(Console.ReadLine());
fruitPrice = double.Parse(Console.ReadLine());
vegiKG = int.Parse(Console.ReadLine());
fruitKG = int.Parse(Console.ReadLine());
}
catch (Exception)
{
Console.WriteLine("Incorrect input");
return;
}
if ((vegiPrice < 0.00) || (vegiPrice > 1000.00) || (fruitPrice < 0.00) || (fruitPrice > 1000.00) ||
(vegiKG < 0) || (vegiKG > 1000) || (fruitKG < 0) || (fruitKG > 1000))
{
Console.WriteLine("Incorrect input");
return;
}
else
{
double resultBGN = ((vegiPrice * vegiKG) + (fruitPrice * fruitKG));
double BGNtoEUR = 1.94;
Console.WriteLine(resultBGN / BGNtoEUR);
}
}
}
}
И ми дава 90/100 точки, с грешка на Test #6. Можете ли да ме насочите в какво греша?
--
Орлин Перфанов
Благодаря за отговора.
Здравейте.
Аз съм писал на Java - 5 реда код, без никакви проверки. При мен също гръмна на шестия ред - с вход 1929212, но поради факта, че стойността на резултата е толкова голяма, че се изобразява с floating point: "double are stored in exponental precision in java and many other languages. see IEEE754 for more information about float, double and their variant".
Следният ред фиксва проблема:
Поздрави