Jochen Arndt
Вы можете использовать таблицу поиска, содержащую индикаторы квадранта. Для доступа к таблице вам понадобятся индексы, указывающие, являются ли входные значения отрицательными или нет.
Потому что тип x
и y
не уточняется, я полагаю int
.
Зная, что отрицательные целые числа обозначаются набором MSB, отрицательные значения можно обнаружить, сдвинув значение вправо на битовую ширину минус единица.
Но операция сдвига должна выполняться без знака (значение должно быть приведено к unsigned int
).
Чтобы получить битовую ширину int используйте
sizeof(int) * 8;
и вычтите один, чтобы получить количество смен.
Выполните операцию для
x
и
y
и используйте результирующие значения которые могут быть равны нулю или единице для доступа к массиву индикаторов квадранта:
char qArr[2][2] = { { '?', '?' }, { '?', '?' }};
Поскольку ваш вопрос выглядит как домашнее задание, я не дам вам окончательного решения. Но вы должны быть в состоянии сделать это сами с помощью вышеприведенных подсказок.