Софтуерно Инженерство
Loading...
NikolayLiubomirov avatar NikolayLiubomirov 78 Точки

[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);

Но първо искам да разбера, защо се получава това недоразумение за мен. Възможно е аз да пропускам нещо простичко, но благодаря предварително за помощта smiley 

Тагове:
0
Programming Fundamentals 05/06/2017 21:11:49
NikolayLiubomirov avatar NikolayLiubomirov 78 Точки

Ще се радвам следващият път, когато дадете downvote no, да го подкрепите с аргументация! Смятам, че темата е полезна и беше добре да се разясни този случай.

0
04/06/2017 22:18:48