[Programming Fundamentals] 3. Water Overflow
Случи ми се нещо много странно, докато решавах 3. Water Overflow (линк към Judge).
Събирах две short променливи в друг short, когато получих компилационна грешка.
Ето "некомпилиращият" се код:
short n = short.Parse(Console.ReadLine());
short capacity = 255;
short capacityLeft = capacity;
for (short i = 0; i < n; i++)
{
short litersToPour = short.Parse(Console.ReadLine());
if (capacityLeft - litersToPour >= 0)
{
capacityLeft -= litersToPour;
}
else
{
Console.WriteLine("Insufficient capacity!");
}
}
short filled = capacity - capacityLeft;
Console.WriteLine(filled);
Реда, който гърми е:
short filled = capacity - capacityLeft;
Грешката, която ми дава е, че пропускам cast от int към short, при положение, че и двете променливи, които събирам са от тип short
Разбира се, никакъв проблем да сложа един cast:
short filled = (short)(capacity - capacityLeft);
Но първо искам да разбера, защо се получава това недоразумение за мен. Възможно е аз да пропускам нещо простичко, но благодаря предварително за помощта