Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > [C] сортировка массива по главное диагонали


Автор: PluSer 17.1.2009, 19:48
не могу заставить корректно сортировать массив по главной диагонали!

вот суть сортировки методом вставки:

"Для примера возьмем файл, состоящий из 8 элементов:
Исх.файл.: 503 87 512 61 908 170 897 275
Алгоритм будет преобразовывать его следующим образом:
j=2. Исх : 503 87 X=87
Рез : °87 503

j=3 : 87 503 °512 X=512
j=4 : °61 87 503 512 X=61
j=5 : 61 87 503 512 °908 X=908
j=6 : 61 87 °170 503 512 908 X=170
j=7 : 61 87 170 503 512 °897 908 X=897
j=8 : 61 87 170 °275 503 512 897 908 X=275"

вот код программы что у меня полчилась
Код

#include <stdafx.h>
#include <stdio.h>
#include <conio.h>
//#include <sdlib.h>

int main(void)
{
     int c;
     int m, kk, n, temp;
     int i, j;
     int matr[10][10];

// ----------------------- vvod matrici ---------------------------------- 

     printf ("Vvedite razmernost' matrici: ");
     scanf ("%d", &n);

     printf ("\nVedite massiv: \n");

     for (i=0; i<n; i++)
     {
          for (j=0; j<n; j++)
          {
               printf ("\nElement matr[%d][%d] = ", i+1, j+1);
               scanf ("%d", &matr[i][j]);
          }
     printf ("\n");
     }

// ------------------------ vivod ishodnoy matrici ------------------------

     printf ("\n Ishodnaya matrica:\n\n");

     for (i=0; i<n; i++)
     {
          for (j=0; j<n; j++)
               printf ("%7d", matr[i][j]);
          printf ("\n");
     }     
          
          printf ("\n");

//-------------------------- sortirovka -----------------------------------

        for (i=0; i<n; i++)
          for (j=1; j<n; j++)
          {
              temp=matr[i][j];  //vremenno zapominaem element matrici
              for (kk=j-1; kk>=0 && temp<matr[i][kk]; kk--)
              matr[kk+1][kk+1]=matr[i][kk];
              matr[kk+1][kk+1]=temp;
          }

//--------------------------- vivod otsortirovannoy matrici -----------------
        printf ("\n Preobrazovannaya matrica\n\n");

     for (i=0; i<n; i++)
     {
          for (j=0; j<n; j++)
               printf ("%7d", matr[i][j]);
          printf ("\n");
     }     


     _getch();
     return 0;
}



буду очень благодарен за оперативную помощь

Автор: smoke_man 19.1.2009, 10:31
Посмотри пример для сортировки массива 3х3.

Автор: PluSer 21.1.2009, 01:38
ну вот, уже какое-то движение) спс

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)