Форум программистов, компьютерный форум CyberForum.ru

сортировка столбцов матрицы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.96
overlord754
54 / 16 / 5
Регистрация: 24.10.2009
Сообщений: 181
28.11.2010, 12:15     сортировка столбцов матрицы #1
задание:
характеристикой столбца целочисленной матрицы, назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик.
я никак не могу реализовать сортировку. я добавил дополнительный одномерный массив В, в который записал характеристики i-го столбца. Помоги добавить код, чтобы происходила сортировка.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
void main()
{int i,j,k;
int n=0,m=0,x=0;
int a[100][100];
int b[100];
cout<<"Enter the array dimension NxM"<<'\n';
cout<<"N= ";cin>>n;
cout<<"M= ";cin>>m;
cout<<"Enter the array"<<n<<"x"<<m<<'\n';
for ( j=0;j<m;j++)
for ( i=0;i<n;i++)
cin>>a[j][i];
system("cls");
for ( i=0;i<n;i++)
b[i]=0;
for ( j=0;j<m;j++)
for ( i=0;i<n;i++)
if ((a[i][j]<0)&&((j+1)%2)==1)
b[i]=abs(a[i][j])+b[i];
for ( i=0;i<n;i++)
if (b[i]>b[i+1])
{
    //тут я думаю нужно вставить код сортировки
}
cout<<"Complete array"<<n<<"x"<<m<<'\n';   
for ( j=0;j<m;j++)
{
for ( i=0;i<n;i++)
cout<<a[i][j]<<" "<<'\t';
cout<<'\n';
}
for (i=0;i<n;i++)
cout<<b[i]<<" ";
}
алгоритм любой.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
legend
 Аватар для legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
28.11.2010, 12:37     сортировка столбцов матрицы #2
почитайте тут про сортировки
overlord754
54 / 16 / 5
Регистрация: 24.10.2009
Сообщений: 181
28.11.2010, 12:42  [ТС]     сортировка столбцов матрицы #3
legend, читал, не особо помогло. такое ощущение что программа игнорирует условие
if (b[i]>b[i+1])
массив остается без изменений
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
28.11.2010, 13:12     сортировка столбцов матрицы #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <ctime>
#include <cstdlib>
 
void sort(int x[5][5], int m, int n, int m1)
{
        int max,i,j,temp;
        max=x[0][m1];
        for(i=0; i<n; i++)
         {
       for(j=i; j<n; j++ )
           {
                   if(x[i][m1]>x[j][m1])
                     {
                            temp=x[i][m1];
                            x[i][m1]=x[j][m1];
                            x[j][m1]=temp;
                     }
            }
         }
 }
 
int main()
{
        const int m=5;
        const int n=5;
        srand(static_cast<unsigned>(time(0)));
        int mat[m][n];
        std::cout << "Matrix: \n";
        for(int i=0; i<m; i++)
        {
                for(int j=0; j<n; j++)
                 {
                         mat[i][j]=rand()%9;
                         std::cout << mat[i][j] << ' ';
                 }
                std::cout << '\n';
        }
        std::cout << "\nSorted matrix:\n";
        for(int i=0; i<n; i++)
        {
                sort(mat,m,n,i);
        }
        for(int i=0; i<m; i++)
        {
                for(int j=0; j<n; j++)
                 {
                         std::cout << mat[i][j] << ' ';
                 }
                std::cout << '\n';
        }
        return 0;
}
overlord754
54 / 16 / 5
Регистрация: 24.10.2009
Сообщений: 181
28.11.2010, 13:20  [ТС]     сортировка столбцов матрицы #5
asics, а по проще никак?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
28.11.2010, 13:26     сортировка столбцов матрицы #6
overlord754, А что тут сложного?Обычная пузырьковая сортировка.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2010, 15:45     сортировка столбцов матрицы
Еще ссылки по теме:

C++ Сортировка столбцов матрицы
C++ Сортировка значений столбцов матрицы по убыванию

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
overlord754
54 / 16 / 5
Регистрация: 24.10.2009
Сообщений: 181
28.11.2010, 15:45  [ТС]     сортировка столбцов матрицы #7
asics, мне не понятны строчки
srand(static_cast<unsigned>(time(0)));
mat[i][j]=rand()%9;

Добавлено через 56 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for ( i=0;i<n;i++)
for ( j=0;j<n;j++)
if (b[i]<b[j])
    {
    for ( i=0;i<n;i++)
    for ( j=0;j<m;j++)
    for ( k=0;k<j;k++)
    for ( l=0;l<j;l++)
        if (a[k][j]<a[l][j])
        {
            x=a[k][j];
            a[k][j]=a[l][j];
            a[l][j]=x;
        }
}
вот такая сортировка непроходит

Добавлено через 1 час 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
void main()
{int i,j,k;
int n=0,m=0,x=0;
int a[100][100];
int b[100];
cout<<"Enter the array dimension NxM"<<'\n';
cout<<"N= ";cin>>n;
cout<<"M= ";cin>>m;
cout<<"Enter the array"<<n<<"x"<<m<<'\n';
for ( i=0;i<n;i++)
for ( j=0;j<m;j++)
cin>>a[i][j];
for ( i=0;i<n;i++)
b[i]=0;             
for ( i=0;i<n;i++)
for ( j=0;j<m;j++)
if ((a[i][j]<0)&&((i+1)%2==1))
b[j]=abs(a[i][j])+b[j];
for ( i=0;i<n;i++)
{
  for ( j=0;j<n;j++)
  {
    if (b[j]>b[i]) 
    {
    x = b[i];
    b[i] = b[j];
    b[j] = x;   
    for ( k=0;k<m;k++)
    {
     x=a[k][j];
     a[k][j]=a[k][i];
     a[k][i]=x; 
    }
    }
  } 
}
cout<<"Complete array"<<n<<"x"<<m<<'\n';   
for ( i=0;i<n;i++)
{
for ( j=0;j<m;j++)
cout<<a[i][j]<<" "<<'\t';
cout<<'\n';
}
for (i=0;i<n;i++)
cout<<b[i]<<" ";
}
все сам закончил
Yandex
Объявления
28.11.2010, 15:45     сортировка столбцов матрицы
Ответ Создать тему
Опции темы

Текущее время: 06:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru