Домашно C#, Area of Figures
Здравейте, написах си програмата, в judge даде 100 точки, а той нали е претенция... Проблема е, че във Visual Studio не закръгля до третия знак и това е... Изписва си цялото число. Зелен съм още, явно нещо не правя както трябва, пробвах по други начини да изписвам кода, програмата си работи всеки път, но не закръгля до третия знак... Къде греша? Благодаря предварително :)
Ето го кода:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AreaOfFigures
{
class Program
{
static void Main(string[] args)
{
var figure = Console.ReadLine();
if (figure == "square")
{
var a = double.Parse(Console.ReadLine());
var S = a * a; Math.Round(S, 3);
Console.WriteLine("S= {0}", S);
}
else if (figure == "rectangle")
{
var a1 = double.Parse(Console.ReadLine());
var a2 = double.Parse(Console.ReadLine());
var S1 = a1 * a2; Math.Round(S1, 3);
Console.WriteLine("S={0}", S1);
}
else if (figure == "circle")
{
var r = double.Parse(Console.ReadLine());
var S2 = Math.PI * r * r; Math.Round(S2, 3);
Console.WriteLine("S={0} ", S2);
}
else if (figure == "triangle")
{
var a3 = double.Parse(Console.ReadLine());
var h = double.Parse(Console.ReadLine());
var S3 = (a3 * h) / 2; Math.Round(S3, 3);
Console.WriteLine("S={0}", S3);
}
else
Console.WriteLine("The figure is not valid");
}
}
}
Благодаря ти! :)
В такъв случай няма нужда от Math.Round-a в по-горния ред?
А защо не се получава по моят начин?
С добавяне на F3 се получава, но пък ако резултата е цяло число, например 45, то програмата изписва 45.000
По твоя начин, ще стане ето така:
else if (figure == "circle")
{
var r = double.Parse(Console.ReadLine());
var S2 =Math.Round(Math.PI * r * r , 3);
Console.WriteLine("S= {0}",S2);
}
или директно в конзолата -> Console.WriteLine("S={0} ", Math.Round(S2, 3));
или трети вариант - с отделна променлива. кочто да четеш от конзолата:
var r = double.Parse(Console.ReadLine());
var S2 = Math.PI * r * r;
var result = Math.Round(S2, 3);
Console.WriteLine("S={0} ", result);
var S2 = Math.PI * r * r; Math.Round(S2, 3); -> по този начин както си написъл Math,Round, ти не го извикваш никъде и затова не ти закръгля.
С " F3 " си работи перфектно. Ето едно решение " F3 " и " switch - case " ->http://pastebin.com/DPUFwuZ3
Благодаря още веднъж! Всичко написано ми е много полезно.