Вопрос задан 25.06.2023 в 12:53. Предмет Информатика. Спрашивает Галич Макс.

С++ Ходы коняНа шахматной доске стоит конь. Отметьте положение коня на доске и все клетки,

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Гонин Никита.

Ответ:

#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. Если помогло, дайте пожалуйста лучший ответ и жмякните на "Спасибо". Это мотивирует давать ответы дальше.  

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи вам потребуется написать программу на 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++ среды разработки. После запуска программы, введите координаты коня, и она выведет на экран доску с отмеченным положением коня и клетками, которые он бьет, в соответствии с заданными условиями.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос