Есть карта
char** map(int n, int x, int y, int a, int b){
char** map = new char*[n];
for (int i = 0; i < n; i++)
{
map[i] = new char[n];
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
map[i][j] = '-';
}
}
return map; }
теперь нужно отобразить на карте дав начальную точку x,y, ширину a и длину b прямоугольника
int main(){
int n = 15;
char** mapArr = map(n, 7, 7, 7, 9);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cout << mapArr[i][j] << " ";
}
cout << endl;
}
} и отобразить. Пробовал по обычному методу от сюда но дав циклу начальную точку не смог отобразить возможно это так и не работает
Если я правильно понял вопрос, то нужно просто добавить условие в функцию map
:
char** map(int n, int x, int y, int a, int b)
{
char** map = new char*[n];
for (int i = 0; i < n; i++)
{
map[i] = new char[n];
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (i >= y && i < y + b && j >= x && j < x + a)
{
map[i][j] = '*';
}
else
{
map[i][j] = '-';
}
}
}
return map;
}
UPDATE
Если нужно вывести только рамку прямоугольника, то можно прописать условия для каждой стороны:
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if ((i >= y && i < y + b && j == x) ||
(i >= y && i < y + b && j == x + a - 1) ||
(j > x && j < x + a && i == y) ||
(j > x && j < x + a && i == y + b - 1))
{
map[i][j] = '*';
}
else
{
map[i][j] = '-';
}
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Появилась такая проблема во время разработки программы на C++Программа должна прочитать содержимое текстового файла input
Есть файл со строками разной длиныСлова в котором, разделены запятыми
Программа на паскале рабочаяНашла как на С++ будут вводиться и выводится матрицы и вектора, но как всё это объеденить я не знаю