Пример искомого минимального прямоугольника приведен на рисунке. Для левого нижнего угла координаты совпадают с минимальными координатами левых нижних углов прямоугольников, для правого верхнего - с максимальными.
Код (С++):
#include <iostream>
int main() {
int x1, y1, w1, h1, x2, y2, w2, h2;
std::cin >> x1 >> y1 >> w1 >> h1;
std::cin >> x2 >> y2 >> w2 >> h2;
// Lower-left corner
if (x1 < x2) {
std::cout << x1 << " ";
} else {
std::cout << x2 << " ";
}
if (y1 < y2) {
std::cout << y1 << "\n";
} else {
std::cout << y2 << "\n";
}
// Upper-right corner
x1 += w1; y1 += h1;
x2 += w2; y2 += h2;
if (x1 > x2) {
std::cout << x1 << " ";
} else {
std::cout << x2 << " ";
}
if (y1 > y2) {
std::cout << y1 << "\n";
} else {
std::cout << y2 << "\n";
}
}
Пример ввода:
1 2 3 4
0 3 6 1
Пример вывода:
0 2
6 6
Пояснение к формату ввода-вывода:
- На вход подаются две строки из 4 целых чисел: x, y - координат и ширины и высоты (изменения по x и y) для каждого прямоугольника
- Вывод - координаты левого нижнего и правого верхнего углов
#include <iostream>
using namespace std;
void sortArray(int *arr) {
int tmp;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4 - 1; j++) {
if (arr[j] > arr[j + 1]) {
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for (int i = 0; i < 4; ++i) {
cout << arr[i]<< " ";
}
}
int main() {
setlocale(LC_ALL, "Russian");
int* data = new int[4];
cout << "Введите числа: " << endl;
for (int i = 0; i < 4; ++i) {
cin >> data[i];
}
sortArray(data);
delete [] data;
system(" Pause");
}
Объяснение:
Код на с++.
По факту,всё что тебе нужно это
tmp = arr[j];
аrr[j] = arr[j + 1];
arr[j + 1] = tmp;
Где arr-это твой массив 4-ёх чисел.
при этого напишешь на любом языке такой алгоритм