• Прокомментируте код, пожалуйста )
    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 << "";
     }
     return 0;
    }

Ответы 1

  • 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 << "";}
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years