Помогите решить задачу со структурами и динамически выделяющейся памятью
Прямоугольник задан координатами двух противоположных углов (левого верхнего и правого нижнего).
Необходимо повернуть его на -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 координаты верхней левой и правой нижней точки исходного и трансформированного прямоугольника.