Определить, можно ли по заданным точкам построить прямоугольник - 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
Объяснение кода листинга программы
- Сначала в коде вычисляются длины сторон прямоугольника по формуле: 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));
- Затем проверяется условие b-c == 0 и a < b. Если это условие выполняется, то в консоль выводится сообщение
Da.
. В противном случае выводится сообщениеNe.
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д