Помогите пожалуйста проверить код!
В с++ ещё плохо разбираюсь, пытаюсь написать код по задаче.Не понимаю правильно иду или нет.
#include <iostream>
using namespace std;
int main()
{
int x[3], y[3];
cin >> x[1];
cin >> y[1];
cin >> x[2];
cin >> y[2];
cin >> x[0];
cin >> y[0];
if (x[0] > x[2] && y[0] > y[2])
{
cout << "NE";
}
else if (x[0] > x[2] && y[0] < y[1])
{
cout << "SE";
}
else if (x[0] < x[1] && y[0] < y[1])
{
cout << "SW";
}
else if (x[0] < x[1] && y[0] > y[2])
{
cout << "NW";
}
/* if (y[0] > y[2])
{
cout << "N";
}
else if (y[0] < y[1])
{
cout << "S";
}
else if (x[0] < x[2])
{
cout << "W";
}
else if (x[0] > x[2]);
{
cout << "E";
}*/
}
Само условие: Программа получает на вход шесть чисел в следующем порядке: x1, y1 (координаты юго-западного угла плота), x2, y2 (координаты северо-восточного угла плота), x, y (координаты пловца). Все числа целые и по модулю не превосходят 100. Гарантируется, что x1 < x2, y1 < y2, x ≠ x1, x ≠ x2, y ≠ y1, y ≠ y2, координаты пловца находятся вне плота. Если пловцу следует плыть к северной стороне плота, программа должна вывести символ «N», к южной – символ «S», к западной – символ «W», к восточной – символ «E». Если пловцу следует плыть к углу плота, нужно вывести одну из следующих строк: «NW», «NE», «SW», «SE».
Ответы (1 шт):
Ну, я бы делал так.
int x1,y1, x2,y2, x,y;
cin >> x1 >> y1 >> x2 >> y2; // Координаты плота
cin >> x >> y; // Координаты пловца
char V = // Куда плыть по вертикали?
(y > y2) ? 'N' : // Если высоко (севернее) - точно к северной стороне
(y < y1) ? 'S' : 0; // Если низко (южнее) - к южной стороне
// Иначе - плыть по горизонтали
char H = // То же самое для горизонтали
(x > x2) ? 'E' :
(x < x1) ? 'N' : 0;
// Просто выводим символы, если есть
if (V) cout << V;
if (H) cout << H;
cout << endl;