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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2009, 21:18   #1
Pedro
Форумчанин
 
Аватар для Pedro
 
Регистрация: 25.03.2007
Сообщений: 166
По умолчанию Заполнение матрицы

Уважаемые программисты, помогите студенту.
Нужно заполнить двумерный массив в таком порядке:


А смог сделать только так:


Может кто то делал что нибудь подобное, если не сложно подскажите как правильно гонять циклы в этом случае. Заранее благодарен.

Последний раз редактировалось Pedro; 22.04.2009 в 22:04.
Pedro вне форума Ответить с цитированием
Старый 22.04.2009, 21:34   #2
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию

По этим ссылкам ничего не показывает..еще раз пошли!
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
MAKEDON вне форума Ответить с цитированием
Старый 22.04.2009, 22:10   #3
Pedro
Форумчанин
 
Аватар для Pedro
 
Регистрация: 25.03.2007
Сообщений: 166
По умолчанию

Исправил. Видно?
Pedro вне форума Ответить с цитированием
Старый 22.04.2009, 23:53   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Написал, но корректно работает только если M=N (матрица квадратная).
Код:
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
const int M=5,N=5;
int matr[M][N];
int i,j,c = 1;
int kk,sr,st;
bool b=true;
int t;

for(i=0;i<M;i++)
 for(j=0;j<N;j++)
  matr[i][j] = 0;

sr=1; st=-1;
for(kk=0; kk<N; kk++,sr=-sr,st=-st)
 {
  if(b)
   { j=kk; i=0; b=false; }
  else
   { i=kk; j=0; b=true; }

  while(i>=0 && i<M && j>=0 && j<N)
   {
    matr[i][j] = c++;
    i += sr;
    j += st;
   }
 }
//---------------------
c = M*N;
sr=-sr;
st=-st;
for(kk=M-1; kk>=1; kk--,sr=-sr,st=-st)
 {
  if(b)
   { j=kk; i=M-1; b=false; }
  else
   { i=kk; j=N-1; b=true; }

  while(i>=0 && i<M && j>=0 && j<N)
   {
    matr[i][j] = c--;
    i += sr;
    j += st;
   }
 }


//----------------------
for(i=0;i<M;i++)
 {
  for(j=0;j<N;j++)
   {
    cout.width(4);
    cout<<matr[i][j];
   }
  cout<<endl;
 }

getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение матрицы методом союзной матрицы dofmat Помощь студентам 6 03.10.2011 15:01
заполнение матрицы в паскале evilguy Помощь студентам 2 07.02.2009 22:28
создание и заполнение матрицы Blad47 Общие вопросы C/C++ 6 13.12.2008 16:38
Заполнение списка StasSv Microsoft Office Excel 2 01.11.2008 15:13
Заполнение БД (Delphi) Air Помощь студентам 15 12.04.2008 11:43