Даны 4 точки. Определить, составляют ли они прямоугольник - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста. Пользователь задает координаты 4 точек (х и у), программа считает составляют ли они прямоугольник. Делал через равенство диагоналей, но из-за квадратов на больших значениях выдает ошибку. как этого избежать или есть ли другой способ это вычислить не прибегая к квадратам числа.

Решение задачи: «Даны 4 точки. Определить, составляют ли они прямоугольник»

textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
float line(float x1, float y1, float x2, float y2)
{
    float k = (y2 - y1) / (x2 - x1);
    float b = (x2*y1 - x1*y2) / (x2 - x1);
    return k;
};
 
int main(void) {
    float x[4], y[4];
    for (int i = 0; i < 4; i++){
        printf("Enter x %d:  ", i);
        scanf("%f", &x[i]);
        printf("Enter y %d:  ", i);
        scanf("%f", &y[i]);
    }
    if ((line(x[0], y[0], x[1], y[1]))*(line(x[1], y[1], x[2], y[2])) == -1 &&
        (line(x[1], y[1], x[2], y[2]))*(line(x[2], y[2], x[3], y[3])) == -1 &&
            (line(x[2], y[2], x[3], y[3]))*(line(x[3], y[3], x[0], y[0])) == -1)
    {
        printf("Rectangle");
    }
    else
        printf("Not a rectangle");
    return 0;
}

Объяснение кода листинга программы

  1. Включение файла с определениями и прототипами функций
  2. Объявление функции line, которая вычисляет коэффициент наклона прямой по заданным точкам
  3. Объявление функции main, которая является точкой входа в программу
  4. Создание массивов x и y для хранения координат точек
  5. Цикл, который позволяет ввести координаты всех 4 точек
  6. Вычисление коэффициента наклона прямой для первых трех точек
  7. Проверка, являются ли полученные коэффициенты наклона перпендикулярными друг другу
  8. Вывод соответствующего сообщения в зависимости от результата проверки
  9. Возврат значения 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы