Заданы координаты вершин треугольника ABC на плоскости. Вывести их в порядке обхода по часовой стрелке - C (СИ)
Формулировка задачи:
Заданы координаты вершин треугольника ABC на плоскости. Вывести их в порядке обхода по часовой стрелке (для проверки достаточно рассмотреть знаки внутренних углов). Обход начинать с вершины A.
Формат входных данных: [x_a] [y_a] [x_b] [y_b] [x_c] [y_c]. Координаты задаются целыми числами в диапазоне ±1000.
Пример: 1 2 30 3 2 1
Формат выходных данных: [название первой вершины] [пробел] [название второй вершины] [пробел] [название третьей вершины].
Пример: A C B
Теорема косинусов: с^2 = a^2 + b^2 – 2*a*b*cosγ
Помогите решить плиз очень нужно срочно!
Решение задачи: «Заданы координаты вершин треугольника ABC на плоскости. Вывести их в порядке обхода по часовой стрелке»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> typedef struct _TPoint { int x,y; char name; } TPoint; TPoint *CreatePoint (char name) { TPoint *p = (TPoint*) malloc (sizeof(TPoint)); p->name = name; printf ("%c:\n", name); printf("\tx = "); scanf("%d", &p->x); printf("\ty = "); scanf("%d", &p->y); fflush(stdin); return p; } void DeletePoint (TPoint *p) { free (p); } int WedgeProduct (int ABx, int ABy, int ACx, int ACy) { return ABx * ACy - ACx * ABy; } int main() { TPoint *A, *B, *C; A = CreatePoint ('A'); B = CreatePoint ('B'); C = CreatePoint ('C'); if (WedgeProduct (B->x - A->x, B->y - A->y, C->x - A->x, C->y - A->y) < 0) printf("A B C"); else printf("A C B"); DeletePoint (A); DeletePoint (B); DeletePoint (C); getchar(); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется структура TPoint, которая содержит координаты точки (x,y) и ее имя (name)
- Создается функция CreatePoint(), которая создает точку, запрашивает ее координаты и имя
- Создается функция DeletePoint(), которая освобождает память, выделенную под точку
- Определяется функция WedgeProduct(), которая вычисляет векторное произведение двух векторов
- В функции main() создаются три точки A, B и C
- Вычисляется векторное произведение (ABx, ABy), (ACx, ACy) и (Bx-Ax, By-Ay) и сохраняется в переменную w
- Если w < 0, то точки выводятся в порядке A B C, иначе в порядке A C B
- Память, выделенная под точки, освобождается
- Программа ожидает нажатия клавиши, чтобы пользователь мог увидеть результат
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д