Определить, можно ли по заданным точкам построить прямоугольник - C (СИ)

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

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

Похожая тема была, но там ничего не ответили. Проблема еще в том, что если глупый пользователь вместе цифр вводит буквы и/или неправильное количество координат, то умная программа ему пишет, что он чтото сделал не так.
int main(int argc, char** argv) {
    double x1,x2,x3,x4,y1,y2,y3,y4;
    printf("Koordinaty #1:\n");
    if ( scanf("%lf %lf",&x1,&y1)!=2)
    {
        printf("Wrong.\n");
        return 1;
    }
    printf("Koordinaty #2:\n");
    if ( scanf("%lf %lf",&x2,&y2)!=2)
    {
        printf("Wrong.\n");
        return 1;
    }
    printf("Koordinaty #3:\n");
    if ( scanf("%lf %lf",&x3,&y3)!=2)
    {
        printf("Wromg.\n");
        return 1;
    }
    printf("Koordinaty #4:\n");
    if ( scanf("%lf %lf",&x4,&x4)!=2)
    {
        printf("Wrong.\n");
        return 1;
    }
    if ((x4-x1)*(x1-x2)+(y1-y2)*(y4-y1)==0 && (x1-x2)*(x3-x2)+(y1-y2)*(y3-y2)==0 && (x4-x3)*(x4-x1)+(y4-y3)*(y4-y1)==0)
        printf ("Da.\n");
    else
        printf("Net.\n");

    return 0;
}
Всем большое спасибо!

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

textual
Листинг программы
 a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
    b=sqrt((x4-x2)*(x4-x2)+(y4-y2)*(y4-y2));
    c=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
    if (b-c==0 && a<b)
        printf ("Da.\n");
    else

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

  1. Сначала в коде вычисляются длины сторон прямоугольника по формуле: a = sqrt((x1-x2)(x1-x2)+(y1-y2)(y1-y2)); b = sqrt((x4-x2)(x4-x2)+(y4-y2)(y4-y2)); c = sqrt((x1-x3)(x1-x3)+(y1-y3)(y1-y3));
  2. Затем проверяется условие b-c == 0 и a < b. Если это условие выполняется, то в консоль выводится сообщение Da.. В противном случае выводится сообщение Ne..

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


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

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

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