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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2010, 21:05   #1
vaan.sk
Пользователь
 
Аватар для vaan.sk
 
Регистрация: 10.03.2010
Сообщений: 30
По умолчанию Где ошибка в сортировке?

Требуется отосортировать массив по возрастанию в столбцах методом прямого выбора без использования доп. массива, вот только не получается немного, подскажите...

Например массив:
123
456
987

Должно получиться:
147
258
369

Код:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>

 void input(int a[][50], int n, int m);
 void output(int a[][50], int n, int m);
 void sort (int a[][50], int n, int m);

void main()
{
int a[50][50];
int n,m;
cout<<"Vvedite koli4estvo strok i stolbcov"<<endl;
cin>>n;
cin>>m;
input (a,n,m);
output (a,n,m);
sort (a,n,m);
output (a,n,m);
}


void input(int a[][50], int n, int m)
{
   cout<<"Vvedite elementi massiva";
   for(int i=0;i<n;i++)
   for(int j=0;j<m;j++)
       cin>>a[i][j];
}

void output(int a[][50], int n, int m)
{
   for(int i=0;i<n;i++)
   { for(int j=0;j<m;j++)
       cout<<setw(6)<<a[i][j];
   cout<<endl;
   }
   getch();
}

void sort (int a[][50], int n, int m)
   {
    int k; 
    int imin,jmin;
    int x,l;

   for (k=1;k<=n*m; k++)
{
   imin=k-1;
   jmin=0;
for (l=k-1;l<=n*m;l++)
   {
   if (a[i][j]<=a[imin][jmin]) { imin=i; jmin=j; }
   if (i=n-1) { j++;i=0; } else {i++}

   }
   x=a[imin][jmin]; a[imin][jmin]=a[k-1][0]; a[k-1][0]=x;


 }
   }
vaan.sk вне форума Ответить с цитированием
Старый 16.03.2010, 23:33   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
void sort (int a[][50], int n, int m)
{
    int i, j, k; 
    int jmin,imin,min;
    int x,l;
    for (k=0;k<=m*n-1; k++)
    {
      imin=k%n;
      jmin=k/n;
      for (j=k/n;j<m;j++)
      {
         if (j==k/n)l=k%n;else l=0;
         for (i=l;i<n;i++)
         if (a[i][j]<a[imin][jmin]) { imin=i; jmin=j; }
      }
    x=a[imin][jmin];
    a[imin][jmin]=a[k%n][k/n];
    a[k%n][k/n]=x;
    }
}
eoln вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка? stas77 Microsoft Office Excel 11 02.11.2009 18:26
Ошибка в сортировке линейного списка, помогите пожалуйста найти Loginanton Паскаль, Turbo Pascal, PascalABC.NET 2 31.12.2008 15:01
Скажите, в чем моя ошибка в сортировке, или напишите, как правильно сортировать. язык Паскаль. Devo4ka Паскаль, Turbo Pascal, PascalABC.NET 0 26.11.2008 00:19
Где ошибка? [Smarik] Общие вопросы Delphi 5 01.04.2008 09:56
Ошибка в сортировке Veiron Общие вопросы Delphi 14 21.01.2008 21:35