Проблем със задача "Bonus Score"
Здравейте,
проблемът е , че когато пусна кода на задачата в judge, той ми дава 70/100 и като грешка (поне доколкото разбрах) ми казва че липсва дробната част при пресмятането. Опитах се да сложа Math.Round, но нещо не се справих. Та въпросите са: само това ли е грешката в кода и как в този случай да добавя Math.Round така че да се показва и дробната част.
Благодаря!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BonusScore
{
class TotalBonusScore
{
static void Main(string[] args)
{
Console.Write("Enter score: ");
var num = int.Parse(Console.ReadLine());
var bonusScore = 0.0;
if (num <= 100)
bonusScore = 5;
else if (num > 100 && num <=999)
bonusScore = (num * 20) / 100;
else if (num > 1000)
bonusScore = (num * 10) / 100;
if (num % 10 == 5)
bonusScore += 2;
else if (num % 2 == 0)
{
bonusScore += 1;
}
Console.WriteLine("Bonus score: {0}", bonusScore);
Console.WriteLine("Total score: {0}", num + bonusScore);
}
}
}
БЛАГОДАРЯ!
Аз търсех проблема само в липсата на Math.Round.
Math.Round щеше да направи обратното на това което ти искаш то закрагля т.е. 2.3 ще ти даде 2. Проблема при теб беше че когато влезнеш във
else if (num > 100 && num <=999)
bonusScore = (num * 20) / 100;
else if (num > 1000)
bonusScore = (num * 10) / 100;
изхода ти е int т.е. отрязва част от резултат-а. Друг fix е да направиш 100 на 100.0 и така bonusScore ще е double и няма да има отрязване.