Описать тип struct - C (СИ)

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

Описать тип struct Rectangle, задающий на плоскости замкнутый прямоугольник со сторонами, параллельными координатным осям и габаритами (x–, x+) и (y–, y+) по осям абсцисс и ординат соответственно. Реализовать в виде отдельных функций следующие операции над переменными этого типа: а) вычисление площади прямоугольника; б) построение прямоугольника по паре точек, задающих любую пару противолежащих вершин; в) построение пересечения двух прямоугольников; г) проверка принадлежности точки прямоугольнику; д) проверка включения одного прямоугольника в другой; е) поворот прямоугольника относительно центра на прямой угол. С использованием описанных типа и функций разработать программу, которая для заданного набора из N прямоугольников находит:1) площадь наименьшего из прямоугольников, содержащего в себе один и более прямоугольников из заданного набора; 2) все пары прямоугольников, совпадающих с точностью до поворота напрямой угол.Не знаю как сделать пункты, выделенные жирным. Помогите

Код к задаче: «Описать тип struct - C (СИ)»

textual
#include <stdio.h>
#include <windows.h>
 
typedef struct{
int x;//координата
int y;//координата
}Rectangle;
Rectangle q[100];
typedef struct{
    int x;
    int y;
}Point;
Point A;
Point B;
 
void main()
{
    SetConsoleOutputCP(1251);
 
    int N;//количество прямоугольников
    int i;//счетчик
    printf("Сколько дано прямоугольников?");
    scanf("%d",&N);
 
    for(i=0;i<N;i++)
    {
        printf("Введите габариты: ");
        scanf("%d%d",&q[i].x,&q[i].y);
    }
    system("pause");
}
 
/*функция а)вычисление площади прямоугольника*/
float Area(Rectangle q){
    float S=0;
    S=2*fabs(q.x)*2*fabs(q.y);
    return S;
}
/*функция б)построение прямоугольника по паре точек, задающих любую пару противолежащих вершин*/
Rectangle For_two_points(Point A,Point B){
    Rectangle P;
    P.x=fabs((B.x-A.x)/2);
    P.y=fabs((B.y-A.y)/2);
    return P;
}
/*функция в)построение пересечения двух прямоугольников*/
Rectangle Crossing(){
 
}
/*функция г) проверка принадлежности точки прямоугольнику*/
int Point_in_rectangle(){
 
}
/*функция д) проверка включения одного прямоугольника в другой*/
int Inside(){
 
}
/*функция е) поворот прямоугольника относительно центра на прямой угол*/
Rectangle Turning(Rectangle q){
int c;
c=q.x;
q.x=q.y;
q.y=c
}

11   голосов, оценка 3.636 из 5


СОХРАНИТЬ ССЫЛКУ