
С++ Ходы коняНа шахматной доске стоит конь. Отметьте положение коня на доске и все клетки,
которые он бьет. Клетку, где стоит конь, отметьте английской буквой “K”. Клетки, которые он бьёт, отметьте символами “*”. Остальные клетки заполните точками.Входные данныеПрограмма получает на вход два числа — координаты коня на шахматной доске. Координаты вводятся на одной строке через пробел. Первое число обозначает номер строки, а второе — номер столбца. Все числа принимают значения от 1 до 8.Выходные данныеВыведите на экран изображение доски так, как это показано в примере. Обратите внимание, что символы в одной строке разделены пробелом.ПримерыВводВывод4 2. . . . . . . .* . * . . . . .. . . * . . . .. K . . . . . .. . . * . . . .* . * . . . . .. . . . . . . .. . . . . . . .

Ответы на вопрос

Ответ:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int y, x;
cin >> x >> y;
int a[8][8];
for (int i = 0; i < 8; ++i)
for (int j = 0; j < 8; ++j)
a[i][j] = 0;
y--;
x--;
a[x][y] = 1;
bool l = (x - 2 >= 0), u = (y - 2 >= 0), r = (x + 2 < 8), d = (y + 2 < 8);
bool hl = (x - 1 >= 0), hu = (y - 1 >= 0), hr = (x + 1 < 8), hd = (y + 1 < 8);
if(l && hu) a[x - 2][y - 1] = 2;
if(l && hd) a[x - 2][y + 1] = 2;
if(hl && u) a[x - 1][y - 2] = 2;
if(hl && d) a[x - 1][y + 2] = 2;
if(hr && u) a[x + 1][y - 2] = 2;
if(hr && d) a[x + 1][y + 2] = 2;
if(r && hu) a[x + 2][y - 1] = 2;
if(r && hd) a[x + 2][y + 1] = 2;
for (int i = 0; i < 8; ++i){
for (int j = 0; j < 8; ++j){
if(a[i][j] == 0) cout << "." << " ";
else if(a[i][j] == 1) cout << "K" << " ";
else cout << "*" << " ";
}
cout << endl;
}
return 0;
}
Объяснение:
все просто. единственный момент - нужно понимать не выйдешь ли ты за пределы массива при написании "звездочки".
P. s. Если помогло, дайте пожалуйста лучший ответ и жмякните на "Спасибо". Это мотивирует давать ответы дальше.



Для решения этой задачи вам потребуется написать программу на C++. Вот пример программы, которая решает задачу:
cpp#include <iostream>
int main() {
// Ввод координат коня
int row, col;
std::cin >> row >> col;
// Создаем шахматную доску 8x8 и заполняем её точками
char board[8][8];
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
board[i][j] = '.';
}
}
// Отмечаем положение коня
board[row - 1][col - 1] = 'K';
// Массив с относительными координатами ходов коня
int moves[8][2] = {{-2, -1}, {-2, 1}, {-1, -2}, {-1, 2}, {1, -2}, {1, 2}, {2, -1}, {2, 1}};
// Помечаем клетки, которые конь бьет
for (int i = 0; i < 8; i++) {
int newRow = row + moves[i][0];
int newCol = col + moves[i][1];
if (newRow >= 1 && newRow <= 8 && newCol >= 1 && newCol <= 8) {
board[newRow - 1][newCol - 1] = '*';
}
}
// Выводим доску
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
std::cout << board[i][j] << ' ';
}
std::cout << std::endl;
}
return 0;
}
Скопируйте этот код в файл с расширением ".cpp" и скомпилируйте его с помощью вашей C++ среды разработки. После запуска программы, введите координаты коня, и она выведет на экран доску с отмеченным положением коня и клетками, которые он бьет, в соответствии с заданными условиями.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili