Единственное, что я вижу неправильно в вашей реализации, это то, что в случае, когда число является и кратным 3, и кратным 5, не только увеличивается и переменная, но и переменные 5 и 3. Основываясь на том, что описал профессор, я полагаю, что он хочет, чтобы вы использовали else-if, чтобы обе переменные были единственной, которая увеличивается, когда вы передаете число, кратное 3 и кратное 5.
Причина, по которой вы получаете правильный ответ в обоих направлениях, заключается в том, что вы идете только к 10 в цикле for, если вы увеличите его до i
Например:
for( int i = 0; i < 10; i++ )
{
if( ( ( i % 3 ) == 0 ) && ( ( i % 5 ) == 0 ) )
{
both++;
}
else if( ( i % 3 ) == 0 )
{
threes++;
}
else if( ( i % 5 ) == 0 )
{
fives++;
}
}