#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
const int colum = 10; // количество столбцов массива
const int row = 10; // количество строк массива
int array[100][100];
int x, y, // Координаты текущего элемента массива
value = 1; // значение, которым заполняется массив
// зполнение первой половины массива по диагонали, зигзагом, начиная
// слева и сверху, заканчивая побочной диагональю
for (int diag = 0; diag < colum; diag++) // выполняем проход по диагоналям
{
if (diag % 2 == 0) // по четным диагоналям
{
x = 0; // х-координата первого лемента массива на диагонали - diag
y = diag; // у-координата элемента массива на диагонали - diag
while (y >= 0) // пока y-координата находится в верхней части диагонали
{
array[x][y] = value; // записать значение в массив
value++;
x++; // по горизонтали, смещаемся влево
y--; // по вертикали, смещаемся вниз
}
}
else // по нечетным диагоналям
{
x = diag; // х-координата элемента массива на диагонали - diag
y = 0; // у-координата первого элемента массива на диагонали - diag
while (x >= 0) // пока x-координата находится в левой части диагонали
{
array[x][y] = value; // записать значение в массив
value++;
x -= 1; // по горизонтали, смещаемся вправо
y += 1; // по вертикали, смещаемся вверх
}
}
} // конец for
// заполнение второй половины массива по диагонали, зигзагом, начиная
// слева и сверху, заканчивая последним элементом массива
for (int diag = 1; diag < colum; diag++)
{
if (diag % 2 == 0) // по четным диагоналям
{
x = 9; // х-координата первого элемента массива на диагонали - diag
y = diag; // у-координата элемента массива на диагонали - diag
while (y <= 9) // Пока не кончилась диагональ
{
array[x][y] = value;
value++;
x--; // по горизонтали, смещаемся влево
y++; // по вертикали, смещаемся вниз
}
}
else // по не четным диагоналям
{
x = diag; // х-координата первого элемента к-ой диагонали
y = 9; // у-координата первого элемента к-ой диагонали
while (x <= 9) // Пока не кончилась диагональ
{
array[x][y] = value;
value++;
x++; // по горизонтали, смещаемся вправо
y--; // по вертикали, смещаемся вверх
}
} // конец if-else
} // конец цикла for (заполнение второй половины массива)
// вывод масиива на экран
for (int ix = 0; ix < row; ix++)
{
for (int jx = 0; jx < colum; jx++)
cout << setw(4) << array[ix][jx] << " ";
cout << endl;
}
return 0;
}