Проблем със задачата 2D Rectangle Area
Пиша кода , въвежда се височината и широчината ,а после се изчислява по формулата, и не ми дава никакви точки. FOR CODES SAKE HELP
Пиша кода , въвежда се височината и широчината ,а после се изчислява по формулата, и не ми дава никакви точки. FOR CODES SAKE HELP
Здравей! Можеш да погледнеш и моето решение! Ако имаш въпроси - аз съм насреща!
using System;
class Program
{
static void Main(string[] args)
{
double x1 = double.Parse(Console.ReadLine());
double y1 = double.Parse(Console.ReadLine());
double x2 = double.Parse(Console.ReadLine());
double y2 = double.Parse(Console.ReadLine());
double width = Math.Max(x1, x2) - Math.Min(x1, x2);
double height = Math.Max(y1, y2) - Math.Min(y1, y2);
Console.WriteLine("Area = {0}", width * height);
Console.WriteLine("Perimeter = {0}", 2 * (width + height));
}
}
Здравейте, колеги!
Ето го и моето решение, но на изход ми изкарва като резултат 1600 вместо 1500 за площта на правоъгълника. Ще съм благодарна, ако някой може да помогне :)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _2DrectangleArea
{
class Program
{
static void Main(string[] args)
{
decimal x1 = decimal.Parse(Console.ReadLine());
decimal y1 = decimal.Parse(Console.ReadLine());
decimal x2 = decimal.Parse(Console.ReadLine());
decimal y2 = decimal.Parse(Console.ReadLine());
decimal height = Math.Max(x1, y1)-Math.Min(x1,y1);
decimal width = Math.Max(x2, y2)-Math.Min(x2,y2);
decimal area = height * width;
decimal perimeter = 2 * (height + width);
Console.WriteLine(area);
Console.WriteLine(perimeter);
}
}
}
decimal height = Math.Max(y1,y2)-Math.Min(y1,y2);
decimal width = Math.Max(x1,x2)-Math.Min(x1,x2);
Пробвай така.
Здравей,
Math.Max / Min трябва да е от (x1,x2)....а не (x1,y1)
Като смениш променливите на всякъде би трябвало да стане.
Да, стана, благодаря :))
Споделям и моето решение на задачата, но е написано на Джава.
import java.util.Scanner; public class RectangleAreaPiremeter { public static void main (String[] args){ Scanner scanner = new Scanner (System.in); double x1 = Double.parseDouble (scanner.nextLine()); double y1 = Double.parseDouble (scanner.nextLine()); double x2 = Double.parseDouble (scanner.nextLine()); double y2 = Double.parseDouble (scanner.nextLine()); double a = Math.abs (x1 - x2); double b = Math.abs (y1 - y2); double S = a * b; double P = 2 * (a + b); System.out.println (S); System.out.println (P); } }
@YanaDonkova
Хубаво и изчистено решение!
Липсва му само едно нещо за да е перфектно. Kогато използваме цифрови литерали в Java (а и не само там), добрата практика изисква да указваме изрично и типа на литерала. В конкретния случай това е без значение за работата на програмата (int * double = double), но все пак, освен писане на работещи програми, трябва да усвояваме и добрите практики.
Ето една произволна страница от Google, с повече информация за цифровите литерали в Java : link
Защо е (x1 - x2) и (у1 - у2)
Това е моето решение :
след няколко неуспешни опита мисля че се получи :)
var x1 = Double.Parse(Console.ReadLine());
var y1 = Double.Parse(Console.ReadLine());
var x2 = Double.Parse(Console.ReadLine());
var y2 = Double.Parse(Console.ReadLine());
var width = Math.Abs(x1 - x2);
var height = Math.Abs(y1 - y2);
var area = width * height;
var perimeter = 2 * (width + height);
Console.WriteLine(area);
Console.WriteLine(perimeter);
Благодаря, решението работи :)