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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2012, 23:39   #1
Slake
 
Регистрация: 24.12.2011
Сообщений: 9
По умолчанию Заполнение матрицы зигзагом

Здравствуйте, уже второй день пытаюсь решить эту проблему.
В интернете есть варианты решений, но мой уровень в знании C++ пока что еще оставляет желать лучшего и разобраться толком не получается... Помогите, ну или хотя бы подскажите как это выглядит вообще.
Заранее спасибо.
Изображения
Тип файла: jpg задание.jpg (20.4 Кб, 159 просмотров)
Slake вне форума Ответить с цитированием
Старый 21.01.2012, 00:46   #2
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Для варианта А. Сразу говорю код не компилил.
Код:
#include <iostream>

int** MatrixFill(int**,int,int,int)  //Прототип функции для заполнения матрицы

int main()
{
    const int size = 8;
    int** mas = new int *[size];
    
    for(int i = 0; i < size; i++)   //Создание динамического массива 
    {
        mas[i] = new int [size];
    }
    
    mas = MatrixFill(mas,size,0,1);  //Заполнение матрицы, а затем её вывод
    
    for(int i = 0; i < size; i++)
    {
        for(int j = 0; j < size; j++)
            cout << ' ' << mas[i][j];
        cout << endl;
    }
    cin.get();
    cin.get();
    return 0;
}

/*Рекурсивная функция для заполнения матрицы*/

int** MatrixFill(int** arr, int size, int col, int mod)
{
    static int pos = 1;//Вот хоть убей не помню как static объявляется в С++ правильно
                   //Вроде бы так.
    switch(mod)
    {
      case 1: 
      {
          if(pos != (size * size))
          {
              for(int i = 0; i < size; i++)
              {
                arr[i][col] = pos++;
              }
              col++;
              arr = MatrixFill(arr,size,col,2);
          }
          return arr;
      }
      case 2:
      {
          if(pos != (size * size))
          {
              for(int i = size - 1; i >= 0; i--)
              {
                arr[i][col] = pos++;
              }
              col++;
              arr = MatrixFill(arr,size,col,1);
          }
          return arr;
      }
    }
}
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Старый 21.01.2012, 00:53   #3
Slake
 
Регистрация: 24.12.2011
Сообщений: 9
По умолчанию

Надо именно вариант "Г", по моему это самый коварный из всех, и можно несколько проще, я бы хотел что-то для себя из всего этого извлечь.
Спасибо!
Slake вне форума Ответить с цитированием
Старый 21.01.2012, 00:59   #4
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Цитата:
Надо именно вариант "Г", по моему это самый коварный из всех, и можно несколько проще, я бы хотел что-то для себя из всего этого извлечь.
Спасибо!
Неплохо было бы сразу уточнить, что именно Г, а то я картинку не сильно разглядывал А вообще на мой взгляд выход с рекурсией проще всего.
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Старый 21.01.2012, 01:03   #5
Slake
 
Регистрация: 24.12.2011
Сообщений: 9
По умолчанию

Извиняюсь, у меня другое отношение к этой рекурсии=) До меня никак не доходит, как ее сделать
Slake вне форума Ответить с цитированием
Старый 21.01.2012, 01:06   #6
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Цитата:
Извиняюсь, у меня другое отношение к этой рекурсии=) До меня никак не доходит, как ее сделать
Учите, развивайте мозг Ща попробую без рекурсии замутить.
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Старый 21.01.2012, 01:12   #7
Slake
 
Регистрация: 24.12.2011
Сообщений: 9
По умолчанию

В любом случае, без помощи, тяжеловато. Поэтому я и здесь=)
Slake вне форума Ответить с цитированием
Старый 21.01.2012, 13:55   #8
Slake
 
Регистрация: 24.12.2011
Сообщений: 9
По умолчанию

Ну неужели никто не знает? =((
Slake вне форума Ответить с цитированием
Старый 25.06.2012, 16:13   #9
Slake
 
Регистрация: 24.12.2011
Сообщений: 9
Злость

НЕНАВИСТЬ! НЕНАВИСТЬ! НЕНАВИСТЬ!
Сволочи вы.
Slake вне форума Ответить с цитированием
Старый 25.06.2012, 17:08   #10
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Из военкомата приходили чтоль?
eoln вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение матрицы AnZet Паскаль, Turbo Pascal, PascalABC.NET 9 04.12.2011 14:48
заполнение матрицы DinamoBrynsk Помощь студентам 2 26.02.2011 17:16
Заполнение матрицы С++ Перфаратар Помощь студентам 7 20.10.2010 19:20
Заполнение матрицы -=aHTPoПоС=- Помощь студентам 3 06.11.2009 17:33
Заполнение матрицы Pedro Помощь студентам 3 22.04.2009 23:53