Предмет: Информатика,
автор: sadsad213
Прокомментируте код, пожалуйста )
int main()
{
int n = 5, x = n - 1, y = n, d = -1, r = 25, a[10][10];
for (int i = x; i >= 0; d *= -1)
{
for (int j = i; j >= 0; --j) a[x][y += d] = r--;
for (int j = --i; j >= 0; --j) a[x += d][y] = r--;
}
// Вывод
for (int i = 0; i<n; i++)
{
for (int j = 0; j<n; j++)
{
printf("%3d ", a[i][j]);
}
cout << "n";
}
return 0;
}
Ответы
Автор ответа:
0
int n = 5, x = n - 1, y = n, d = -1, r = 25, a[10][10]; // тут собственно сама
матрица, n - длина
// х,у - координаты ячейки, d - шаг =+1 при движении вправо и вниз, = -1
при движении влево и вверх
// r - число в ячейке
for (int i = x; i >= 0; d *= -1) // тут меняем знак
{
for (int j = i; j >= 0; --j) a[x][y += d] = r--; // двигаемся вправо
for (int j = --i; j >= 0; --j) a[x += d][y] = r--; // двигаемся вверх
}
for (int i = 0; i<n; i++) // тут все просто циклы для вывода матрицы
{
for (int j = 0; j<n; j++)
{
printf("%3d ", a[i][j]);
}
cout << "n";
}
матрица, n - длина
// х,у - координаты ячейки, d - шаг =+1 при движении вправо и вниз, = -1
при движении влево и вверх
// r - число в ячейке
for (int i = x; i >= 0; d *= -1) // тут меняем знак
{
for (int j = i; j >= 0; --j) a[x][y += d] = r--; // двигаемся вправо
for (int j = --i; j >= 0; --j) a[x += d][y] = r--; // двигаемся вверх
}
for (int i = 0; i<n; i++) // тут все просто циклы для вывода матрицы
{
for (int j = 0; j<n; j++)
{
printf("%3d ", a[i][j]);
}
cout << "n";
}
Похожие вопросы
Предмет: Геометрия,
автор: sashasemin2008
Предмет: История,
автор: arhipenkoalina760
Предмет: Алгебра,
автор: Myumi
Предмет: Математика,
автор: самка235