Найти ближайшую точку к началу координат - C#
Формулировка задачи:
Помогите с заданием пожалуйста!
Даны действительные числа x0, y0, x1, y1, x2, y2, x3, y3 . На плоскости заданы точки A(x1, y1), B(x2,y2) и C(x3, y3) . Определить, какая из этих точек является ближайшей к началу координат.
Вот мои попытки, что то не получается.. выводиться только точка С
Visual studio c# 2010 express
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double x0, y0, x1, y1, x2, y2, x3, y3, r1, r2, r3, minR; string min; x0 = 0; y0 = 0; Console.WriteLine("Точка А"); Console.WriteLine("Введите значение x1"); x1 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите значение y1"); y1 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Точка B"); Console.WriteLine("Введите значение x2"); x2 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите значение y2"); y2 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Точка C"); Console.WriteLine("Введите значение x3"); x3 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите значение y3"); y3 = Convert.ToDouble(Console.ReadLine()); r1 = Math.Pow((Math.Pow((x0 - x1), 2) + Math.Pow((y0 - y1), 2)), 0.5); r2 = Math.Pow((Math.Pow((x0 - x2), 2) + Math.Pow((y0 - y2), 2)), 0.5); r3 = Math.Pow((Math.Pow((x0 - x3), 2) + Math.Pow((y0 - y3), 2)), 0.5); minR = 0; min = "0"; if (r1 > minR) { min = "A"; } if (r2 > minR) { min = "B"; } if (r3 > minR) { min = "C"; } if ((r1 == r2) && (r1 == minR)) { min = "A,B"; } if ((r2 == r3) && (r2 == minR)) { min = "B,C"; } if ((r1 == r3) && (r1 == minR)) { min = "A,C"; } if ((r1 == r2) && (r2 == r3) && (r1 == minR)) { min = "A,B,C"; } Console.WriteLine("Ответ:"); Console.WriteLine("Наименьшее расстояние до начала координат от точки " + min); Console.ReadKey(); } } }
Решение задачи: «Найти ближайшую точку к началу координат»
textual
Листинг программы
class Program { static void Main(string[] args) { double x0, y0, x1, y1, x2, y2, x3, y3, r1, r2, r3, minR; string min; x0 = 0; y0 = 0; Console.WriteLine("Точка А"); Console.WriteLine("Введите значение x1"); x1 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите значение y1"); y1 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Точка B"); Console.WriteLine("Введите значение x2"); x2 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите значение y2"); y2 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Точка C"); Console.WriteLine("Введите значение x3"); x3 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите значение y3"); y3 = Convert.ToDouble(Console.ReadLine()); r1 = Math.Pow((Math.Pow((x0 - x1), 2) + Math.Pow((y0 - y1), 2)), 0.5); r2 = Math.Pow((Math.Pow((x0 - x2), 2) + Math.Pow((y0 - y2), 2)), 0.5); r3 = Math.Pow((Math.Pow((x0 - x3), 2) + Math.Pow((y0 - y3), 2)), 0.5); minR = r1; min = "A"; if (r2 < minR) { minR = r2; min = "B"; } if (r3 < minR) { minR = r3; min = "C"; } if (r1 == minR && r2 == minR) min = "A, B"; if (r2 == minR && r3 == minR) min = "B, C"; if (r1 == minR && r3 == minR) min = "A, C"; if (r1 == minR && r2 == minR && r3 == minR) min = "A, B, C"; Console.WriteLine("Ответ:"); Console.WriteLine("Наименьшее расстояние до начала координат от точки " + min); Console.ReadKey(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д