Распечатывание матрицы в строку

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Krazyzy
Сообщения: 1
Зарегистрирован: 04 дек 2009, 11:25

Надо распечатать квадратную матрицу в строку, чтоб элементы шли в таком порядке
1 3 4 10
2 5 9 11
6 8 12 15
7 13 14 16
Никак не соображу как сделать эту змеевидную сортировку...
пока вот что имею

Код: Выделить всё

#include <stdio.h>
#include <conio.h>

void main() {
  int i, j, n, M[9][9], b[100], k=0, l=0;
  clrscr();
  do {
    printf("Enter size of matrix: ");
    scanf("%d", &n);
  } while(1 > n || n > 9);

  for(i = 0; i < n; i++)
    for(j = 0; j < n; j++)
      M[i][j] = (i + 1) * 10 + j + 1;
         printf("\n");
  for(i = 0; i < n; i++)
    {for(j = 0; j < n; j++)
     printf("%4d ",M[i][j]);
     printf("\n");
    }
printf("\nLine printed after detour ==>\n\n==>");

j=0;i=0;l=1;
for (k=0;k<n*n;k++)
{
b[k]=M[i][j];
if(l) {i++;j++;} else {i--;j--;}

if (j>i&&i<0){i++;l=1;}
if (j>i&&j>=n){j--;l=0;}

if (i>j&&i>=n){i--;j-=2;l=0;}
if (i>j&&j<0){j++;i+=2;l=1;}

if (i==j&&i>=n){j-=2;i--;l=0;}
if (i==j&&i<0){j++;i+=2;l=1;}
}

printf("\n\nPoluchenniy massiv :\n");
for (i=0;i<n*n;i++)
printf("%4d",b[i]);

getch();
}
Аватара пользователя
WinMain
Сообщения: 929
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

Алгоритм линеаризации матрицы уже обсуждался на этом форуме.
Вот эта тема: http://forum.developing.ru/showthread.php?t=12325
Ответить