Four Factors -- Задача от изпит 12.July2015
3ащо ми дава последните 2 отговора 0.000 ? Къде бъркам??
using System;
class Program
{
static void Main()
{
uint fieldGoals = uint.Parse(Console.ReadLine());
uint fieldGoalAttempted = uint.Parse(Console.ReadLine());
uint threePointFieldGoals = uint.Parse(Console.ReadLine());
uint turnovers = uint.Parse(Console.ReadLine());
uint offensiveRebounds = uint.Parse(Console.ReadLine());
uint opponentDefensiveRebounds = uint.Parse(Console.ReadLine());
uint freeThrows = uint.Parse(Console.ReadLine());
uint freeThrowAttempts = uint.Parse(Console.ReadLine());
Console.WriteLine("eFG% {0:F3}", (fieldGoals + 0.5 * threePointFieldGoals) / fieldGoalAttempted);
Console.WriteLine("TOV% {0:F3}", turnovers / (fieldGoalAttempted + 0.44 * freeThrowAttempts + turnovers));
Console.WriteLine("ORB% {0:F3}", offensiveRebounds / (offensiveRebounds + opponentDefensiveRebounds));
Console.WriteLine("FT% {0:F3}", freeThrows / fieldGoalAttempted);
}
}
ами понеже в условието пише "All input parameters will be valid integers, in the range [1 ... 3,000,000,000 ]. " А аз много често ги бъркам и все внимавам, а то при прекаленото внимаване, е тва става.. Благодаря много ;) пийс
Погледнато реално, няма проблем да ги приемеш и като uint но после ще трявба да ги кастваш към дабъл при аритметичните операции.
Console.WriteLine("ORB% {0:F3}", (double)offensiveRebounds / (offensiveRebounds + opponentDefensiveRebounds));
Console.WriteLine("FT% {0:F3}", (double)freeThrows / fieldGoalAttempted);
На мен лично в началото ми беше голяма драма с тези каствания, но с времето ще ти станат напълно ясни.
Поздрави!
Ако делиш целочислено на целочислено, ще получиш целочислено число, затова трябва да се кастне отпред, че искаш да е дабъл, за да ти върне дробно.