Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Программка на с++. Вывод готового массива по спирали из центра (http://www.tehnari.ru/f41/t50953/)

Нимфея 26.04.2011 21:11

Программка на с++. Вывод готового массива по спирали из центра
 
Всем доброго времени суток! Уважаемые форумчане, пожалуйста, помогите решить проблемку, с которой столкнулась.
Есть программа с множеством различных функций. Так вот одна из них - вывод отсортированного массива по спирали вверх против часовой стрелки, криво работает. Функция работает с простыми числами (от 1 до сайз*сайз), но повторяет значения элементов, если пытаешься присвоить массив.

Код:

void SPIRAL(int nums[size][size])
{
    int iIndex, jIndex, n = 0;

    int *p=&nums[0][0];

  iIndex = jIndex = size / 2;

          while (n < size)
  {
      for (int a = 0; a < n; a++)
      {
          nums[iIndex++][jIndex] = *p++; //вверх
      }
      for (int a = 0; a < n; a++)
      {
        nums[iIndex][jIndex++] = *p++; //влево
      }
      n++;
      for (int a = 0; a < n; a++)
      {
        nums[iIndex--][jIndex]  = *p++; //вниз
      }
      for (int a = 0; a < n; a++)
      {
        nums[iIndex][jIndex--] = *p++; //вправо
      }
      n++;
  }

  for (int i = 0; i < size; i++)
  {
      for (int j = 0; j < size; j++)
      {
        cout << setw(4) << nums[i][j];
      }
  cout << endl;
  }
}



Часовой пояс GMT +4, время: 13:06.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.