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

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

Восстановить пароль Регистрация
 
CRazY-LeMoN
 Аватар для CRazY-LeMoN
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 2
03.03.2013, 09:58     Сортировка столбцов матрицы #1
По заданию нужно отсортировать столбцы матрицы в порядке возрастания сумм положительных элементов столбцов.
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
#include <conio.h>
using namespace std;
 
void main()
{ setlocale(LC_ALL, "");
 int i,j, n, m, buf; 
 cout<<"Количество строк массива: ";
 cin>>n;
 system("cls");
 cout<<"Количество столбцов: ";
 cin>>m;
 system("cls");
 int **mas=new int *[n];
 for(i=0; i<n;i++)
 mas[i]=new int [n];
 for(i=0;i<n;i++)
 { for(j=0;j<m;j++)
    { cout<<"["<<i<<"]["<<j<<"] = ";
      cin>>mas[i][j];
      system("cls");
     }
  }
 cout<<"Введен массив: ";
   for(i=0; i<n; i++)
    { cout << "\n";
      for (j=0; j<m; j++)
      cout << "\t" << mas[i][j];
    } 
 cout<<endl<<endl;
 
 int *sum, g,s;   //создание массива с суммой элементов столбца
 sum=new int[m]; //
 for(g=0;g<m;g++)//
    sum[g]=0;   //\\
 
 for(j=0;j<m;j++)        //заполнение массива суммой элементов столбца по условию
 {  s=0;                //
     for(i=0;i<n;i++)  //
      { if(mas[i][j]>0)//
        s=s+mas[i][j];//
       }              //
     sum[j]=s;       //
   }                //\\
 
 cout<<"Сумма положительных элементов столбцов введенного массива: "<<endl;
  for(i=0;i<m;i++)
     cout<<"\t"<<sum[i];
 cout<<endl<<endl;
    
for (g=1; g<m; g++)          //сортировка столбцов исходного массива по условию увеличения суммы элементов столбца(не знаю как делать)
 { for(j=0;j<m;j++)          //
     for(i=0; i<m-g; i++)    //
   {if(sum[i]>sum[i+1])      //
    {                       //
       {buf=mas[i][j];      //
       int bufs=sum[i];      //
       mas[i][j]=mas[i][j+1]; //
       sum[i]=sum[i+1];      //
       mas[i][j+1]=buf;      //
       sum[i+1]=bufs;       //
        }                  //
      }                   //
     }                   //
   }                   //\\
      
 cout<<"Упорядоченная сумма положительных элементов столбцов введенного массива: "<<endl;
  for(i=0;i<m;i++)
     cout<<"\t"<<sum[i];
 cout<<endl<<endl;
 
cout<<"Массив, после перестановки столбцов"<<endl<<"в порядке возрастания сумм положительных элементов столбцов:"<<endl;
 for(int i=0; i<n; i++)                               
   {
     cout<<"\n";
     for (int j=0; j<m; j++)
     cout<< "\t" << mas[i][j];
    }
getch();
}
но моего гуманитарного мозга не хватает для того, что бы переставить столбцы по условию увеличения суммы элементов столбцов.
помогите
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2013, 09:58     Сортировка столбцов матрицы
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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