Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2012, 23:20   #1
tanyuxxxa
Пользователь
 
Регистрация: 28.02.2012
Сообщений: 38
По умолчанию массив

Массив заполняет по диагонали но не змейкой, как исправить? и какие то -1 выдает(

Последний раз редактировалось tanyuxxxa; 22.11.2012 в 09:25. Причина: Решение
tanyuxxxa вне форума Ответить с цитированием
Старый 22.11.2012, 03:27   #2
Arazei
Пользователь
 
Аватар для Arazei
 
Регистрация: 16.08.2011
Сообщений: 24
По умолчанию

=) Кульная задачка.
С каждым новым внешним циклом меня строку с столбцом. Используй либо условие или счеичик с значением (но условие кажись логичнее). Это что мне пришло в голову.
Не додумаешься пиши, скину код. Пока сам покури.
Arazei вне форума Ответить с цитированием
Старый 22.11.2012, 08:30   #3
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Танюха, я бы не стал связываться с обходом по порядку заполнения. Можно просто пройти массив в обычном порядке, но ставить то, что нужно. Как-то так примерно..
Код:
#include <iostream>
#include <iomanip>

int main()
{
   const int m = 6;
   int arr[m][m];
   int i, j;
   std::fill( &arr[0][0], &arr[0][0] + (m*m), -1 );
   for ( i = 0; i < m ; ++i )
   {
      for ( j = 0; j < m - i; ++j )
      {
         arr[i][j]= m*m+1-((i+j+1)*(i+j)/2+(i+j+1)%2*(j+1)+(i+j)%2*(i+1));
         arr[m-i-1][m-j-1]= m*m+1-arr[i][j];
      }
   }

   // вывод массива
   for ( i = 0; i < m; ++i )
   {
      for ( j = 0; j < m; ++j )
      {
         std::cout << std::setw(2) << arr[i][j] << ' ';
      }

      std::cout << std::endl;
   }
}
А вывод -1 ты просила, вот и получила. Когда используешь чужой код, дай себе труд хотя бы немного разобраться в том, как он работает..
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 22.11.2012, 09:06   #4
tanyuxxxa
Пользователь
 
Регистрация: 28.02.2012
Сообщений: 38
По умолчанию

СПасибо огромное!
tanyuxxxa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив, вывести по диагонали Naposaram Паскаль, Turbo Pascal, PascalABC.NET 2 31.03.2012 14:36
Двумерный массив вывод элементов змейкой egor67 Паскаль, Turbo Pascal, PascalABC.NET 4 08.04.2011 17:15
Заполнить массив змейкой NeGaTiVe Помощь студентам 9 28.03.2011 17:08
Заполнить массив Файзулка Помощь студентам 2 24.01.2011 23:50
Заполнить матрицу ЛП, от левого верхнего угла по диагонали: вправо - вверх. O.G.O Общие вопросы C/C++ 4 11.06.2009 01:10