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

Прямоугольник задан координатами двух противоположных углов (левого верхнего и правого нижнего).

Необходимо повернуть его на -90o относительно центра координат.

Для описания координат создана структура struct Point Для описания прямоугольника создана структура struct Rect.

struct Point {
    int x;
    int y;
};
struct Rect {
    Point lt; // left top
    Point rb; // right bottom
};

Напишите функцию, которая реализует транформацию прямоугольника src в новый прямоугольник, выделяя динамически память, прямоугольник src должен остаться без изменений Rect * transform (const Rect * src)

В проверяющую систему посылать только реализацию функции transform. В полученном прямоугольнике левая верхняя точка должна быть левее и выше правой нижней точки.

int main()
{
    Rect a = {{2, 4}, {7, 1}};
    Rect * rect;
    rect = transform(&a);
    printf("%d %d %d %d\n", a.lt.x, a.lt.y, a.rb.x, a.rb.y);
    printf("%d %d %d %d\n", rect->lt.x, rect->lt.y, rect->rb.x, rect->rb.y);
    delete rect;
    return 0;
}

Формат входных данных

x и y координаты верхней левой и x и y координаты нижней правой точек прямоугольника через пробел.

Формат результата

x и y координаты верхней левой и правой нижней точки исходного и трансформированного прямоугольника.


Ответы (0 шт):