tanyaandreeva728
?>

С++ Ходы ферзя На шахматной доске стоит ферзь. Отметьте положение ферзя на доске и все клетки, которые бьет ферзь. Клетку, где стоит ферзь, отметьте буквой "Q", клетки, которые бьет ферзь, отметьте символами "*", остальные клетки заполните точками. Входные данные В двух строках входного файла заданы два числа — координаты нахождения ферзя. Числа во входном файле натуральные, не превосходящие 8 по значению. Выходные данные Выведите на экран изображение доски так, как это показано в примере. Обратите внимание, что символы в одной строке разделены пробелом. Примеры Ввод Вывод 4 2 . * . . * . . . . * . * . . . . * * * . . . . . * Q * * * * * * * * * . . . . . . * . * . . . . . * . . * . . . . * . . . * . .

Информатика

Ответы

Bmashutav16

#include <iostream>

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--;

   

   int px = x, py = y;

   while (px >= 0 && py >= 0){

       a[px][py] = 2;

       px--;

       py--;

     

   }

   

   px = x, py = y;

   while (px >= 0 && py < 8){

       a[px][py] = 2;

       px--;

       py++;

   }

   

   px = x, py = y;

   while (px < 8 && py < 8){

       a[px][py] = 2;

       px++;

       py++;

   }

   

   px = x, py = y;

   while (px < 8 && py >= 0){

       a[px][py] = 2;

       px++;

       py--;

   }

   

   px = 0;

   while (px < 8){

       a[px][y] = 2;

       px++;

   }

   

   py = 0;

   while (py < 8){

       a[x][py] = 2;

       py++;

   }

   

   a[x][y] = 1;

   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 << "Q" << " ";

           else cout << "*" << " ";

       }

       cout << endl;

   }

   return 0;

}

Объяснение:

вроде все просто, не знаю, что объяснять. скорее всего, есть возможность сделать это гораздо более оптимизировано, но мне было лень думать, так что сделал тупым и неоптимизированным методом, состоящем из кучи циклов while.

P. s. Если , дайте лучший ответ и жмякните на " " . Это мотивирует давать ответы дальше.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

С++ Ходы ферзя На шахматной доске стоит ферзь. Отметьте положение ферзя на доске и все клетки, которые бьет ферзь. Клетку, где стоит ферзь, отметьте буквой "Q", клетки, которые бьет ферзь, отметьте символами "*", остальные клетки заполните точками. Входные данные В двух строках входного файла заданы два числа — координаты нахождения ферзя. Числа во входном файле натуральные, не превосходящие 8 по значению. Выходные данные Выведите на экран изображение доски так, как это показано в примере. Обратите внимание, что символы в одной строке разделены пробелом. Примеры Ввод Вывод 4 2 . * . . * . . . . * . * . . . . * * * . . . . . * Q * * * * * * * * * . . . . . . * . * . . . . . * . . * . . . . * . . . * . .
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Andreevich
Роман Александр66
Дмитриевич Бирковская69
Рощак_Ольга573
zdl2008
Людмила Анна
opal19575
shuramuji
Nikolaevich1534
krikatiy
kgrechin
shakhnina90
lukanaft
Манько_Панферов
ИвановнаВладимир1832