@ScrepY

Пишет не число C# что делать?

public class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите значение точек x1,y1: ");
            Trapezium.x1 = long.Parse(Console.ReadLine());
            Trapezium.y1 = long.Parse(Console.ReadLine());
            Console.WriteLine("Введите значение точек x2,y2: ");
            Trapezium.x2 = long.Parse(Console.ReadLine());
            Trapezium.y2 = long.Parse(Console.ReadLine());
            Console.WriteLine("Введите значение точек x3,y3: ");
            Trapezium.x3 = long.Parse(Console.ReadLine());
            Trapezium.y3 = long.Parse(Console.ReadLine());
            Console.WriteLine("Введите значение точек x4,y4: ");
            Trapezium.x4 = long.Parse(Console.ReadLine());
            Trapezium.y4 = long.Parse(Console.ReadLine());
            
            Console.WriteLine($"\nРезультат: ");
            Trapezium.Lines();
            
            Console.Write($"Периметр трапеции: ");
            Trapezium.Perimetr();
            Trapezium.Heith();
            

        }
    }

public class Trapezium 
    {

        public static double x1, x2, x3, x4, y1, y2, y3, y4;

        public static double A, B, C, D;
        

        public static void Lines()
        {
            
            A = ((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
            B = ((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2));
            C = ((x4 - x3) * (x4 - x3) + (y4 - y3) * (y4 - y3));
            D = ((x1 - x4) * (x1 - x4) + (y1 - y4) * (y1 - y4));
            Console.WriteLine(A);
            Console.WriteLine(B);
            Console.WriteLine(C);
            Console.WriteLine(D);
            Console.WriteLine();
        }

        public static void Perimetr()
        {
           double perimetr = A + B + C + D;
            Console.WriteLine(perimetr);
        }

       
       

        public static void Heith()
        {
            double op = 2 * (A - B);
            double h = Math.Abs(Math.Sqrt(Math.Pow(C, 2) - Math.Pow((Math.Pow((A - B), 2) + Math.Pow(C, 2) - Math.Pow(D, 2)/op),2)));
            double S = ((A + B) / 2) * h;
            Console.WriteLine(S);
        }

        

    }
  • Вопрос задан
  • 85 просмотров
Решения вопроса 1
firedragon
@firedragon
Senior .NET developer
long.Parse

работает с культуторой
поэтому числа могут быть не валидными или ошибочными
10.2 - 1049 ошибка
10,2 - 1033 ошибка

10.2 - 1033 а вот при этой все сработает
10,2 - 1049
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Smilleey
Забыли объявить переменную вначале?
var tr = new Trapezium();
tr.x1 = ...


И используйте TryParse.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы