Тема: Вивести матрицю по малюнку
Доброго дня. Почали вчити динамічне виділення пам'яті в С++. Там, начебто, все зрозуміло, але я не можу розібратись з завданням, де потрібно написати функцію, яка заповняє заштриховану область(малюнок нижче) квадратної матриці, в якої всі елементи є одиницями, нулями. Ось код, де я намагався відштовхнутись від заповнення по діагоналі:
#include <iostream>
#include <stdio.h>
#include <iomanip>
using namespace std;
//функція
void func(int** arr, int n)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
arr[j][i] = 0;
arr[i][j] = 1;
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
cout << setw(4) << arr[i][j];
cout << endl;
}
}
int main()
{
int **arr, n;
cout << "Enter order of matrix: ";
cin >> n;
cout << "--------------------------------" << "\n" << endl;
arr = new int*[n];
for (int i = 0; i < n; i++)
{
arr[i] = new int[n];
}
func(arr, n);
for (int i = 0; i < n; i++)
{
delete[] arr[i];
}
delete[] arr;
return 0;
}
Мені тільки потрібно пояснити або показати, який алгоритм дії має бути у функції, щоб вийшла відповідна матриця. З динамічною пам'яттю в мене проблем немає. Дякую!