Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Shadow123
1 / 1 / 1
Регистрация: 02.11.2014
Сообщений: 31
1

Сортировка столбцов матриц и их сумм по Возрастанию

10.06.2015, 21:10. Просмотров 414. Ответов 3
Метки нет (Все метки)

Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик. Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент.
(Как отсортировать столбцы без индексов?)
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
#include "stdafx.h"
#include "math.h"
#include "conio.h"
#include "iostream"
using namespace std;
void main()
{
int a[20][20]={0},i,j,ch[20]={0},tmp,index[20],m,n; 
 cout<<"vvedite razmernost\n"<<endl;
 cin>>n>>m;
 for(i=0;i<n;i++)
 {
     for(j=0;j<m;j++)
     {
         cin>>a[i][j];
     }
 }
 cout<<"\n\n";
 for(i=0;i<n;i++)
 {
     for(j=0;j<m;j++)
         
     {
         if (a[i][j]<0 && a[i][j]%2)
         {
             ch[j]+=abs(a[i][j]);
         }
         printf("%4d ",a[i][j]);
     index[i]=i;}
     cout<<endl;
}    
 for(i=0;i<n-1;i++)
     for(j=i+1;j<m;j++)
         if (ch[index[j]]<ch[index[i]])
         {
             tmp=index[j];
             index[j]=index[i];
             index[i]=tmp;
         }
         cout<<endl;
         for(i=0;i<n;i++)
         {
             for(j=0;j<m;j++)
             {
                 printf("%4d ",a[i][index[j]]);
             }
             cout<<endl;
         }
         cout<<endl;    
 
_getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2015, 21:10
Ответы с готовыми решениями:

Сортировка столбцов матриц и их сумм по возрастанию
Характеристикой столбца целочисленной матрицы назовем сумму модулей его...

Сортировка столбцов матрицы по возрастанию последних элементов столбцов
Сортировка столбцов по росту последних элементов столбцов.Помогите пожалуйста,...

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

Сортировка столбцов по возрастанию
Разработать функцию сортировки столбцов двухмерного массива за возрастанием и...

Сортировка четных столбцов матрицы по убыванию элементов, а нечетных - по возрастанию
Дана матрица, размерностью nxn, содержащая целые числа. Отсортировать каждый...

3
Shadow123
1 / 1 / 1
Регистрация: 02.11.2014
Сообщений: 31
13.06.2015, 14:41  [ТС] 2
краб
0
Миниатюры
Сортировка столбцов матриц и их сумм по Возрастанию  
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
13.06.2015, 16:21 3
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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
 
int main()
{
    srand(time(NULL));
   int Arr[20][20];
   int temp[20]={0};
   bool temp2[20]={0};
 
   int N(8),M(5);
 
   for (int i=0;i<N;i++){
    for (int j=0;j<M;j++){
        Arr[i][j]=rand()%100-10;
        cout<<Arr[i][j]<<"\t";
    }   cout<<"\n";
   }
  ///////////////////////////
 
 
 
  for (int i=0;i<M;i++){
    for (int j=0;j<N;j++){
         if (j%2 && Arr[j][i]<0) temp[i]+=abs(Arr[j][i]);
         if (Arr[j][i]<0) temp2[i]=true;
    } // cout<<"\n";
  }
  cout<<"\n====================\n";
 
  for (int i=0;i<M;i++) cout<<temp[i]<<"\t";
  cout<<"\n";
  for (int i=0;i<M;i++){
            if (temp2[i]) cout<<temp[i]<<"\t";
            else cout<<"\t";
  }
  cout<<"\n====================\n";
  ///////////////////////////////
 
 
  for (int i=0;i<M-1;i++){
    for (int j=i+1;j<M;j++){
        if (temp[i]>temp[j]){
            swap(temp[i],temp[j]);
            for (int k=0;k<N;k++){
                swap(Arr[k][i],Arr[k][j]);
            }
        }
    }
  }
 
  cout<<"\n\n\n";
 
  for (int i=0;i<N;i++){
    for (int j=0;j<M;j++){
        cout<<Arr[i][j]<<"\t";
    }   cout<<"\n";
  }
 
  cout<<"\n====================\n";
 
for (int i=0;i<M;i++) cout<<temp[i]<<"\t";
cout<<"\n";
for (int i=0;i<M;i++){
            if (temp2[i]) cout<<temp[i]<<"\t";
            else cout<<"\t";
  }
  cout<<"\n====================\n";
 
 
 
 
}
Для наглядности показываю суммы всех столбцов, а под ними суммы только тех, в которых есть отрицательное значение, если нет, то просто пропускаю
1
Миниатюры
Сортировка столбцов матриц и их сумм по Возрастанию  
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
13.06.2015, 17:07 4
Хотя вот. Суммы столбцов считает как в задании сказано. не досмотрел
Кликните здесь для просмотра всего текста
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;


int main()
{
srand(time(NULL));
int Arr[20][20];
int temp[20]={0};
bool temp2[20]={0};
long temp3[20]={0};

int N(8),M(5);

for (int i=0;i<N;i++){
for (int j=0;j<M;j++){
Arr[i][j]=rand()%50-5;
cout<<Arr[i][j]<<"\t";
} cout<<"\n";
}
///////////////////////////



for (int i=0;i<M;i++){
for (int j=0;j<N;j++){
temp3[i]+=Arr[j][i];
if (j%2 && Arr[j][i]<0) temp[i]+=abs(Arr[j][i]);
if (Arr[j][i]<0) temp2[i]=true;
} // cout<<"\n";
}
cout<<"\n====================\n";

for (int i=0;i<M;i++) cout<<temp[i]<<"\t";
cout<<"\n";
for (int i=0;i<M;i++){
if (temp2[i]) cout<<temp3[i]<<"\t";
else cout<<"\t";
}
cout<<"\n====================\n";
///////////////////////////////


for (int i=0;i<M-1;i++){
for (int j=i+1;j<M;j++){
if (temp[i]>temp[j]){
swap(temp[i],temp[j]);
swap(temp2[i],temp2[j]);
swap(temp3[i],temp3[j]);
for (int k=0;k<N;k++){
swap(Arr[k][i],Arr[k][j]);
}
}
}
}

cout<<"\n\n\n";

for (int i=0;i<N;i++){
for (int j=0;j<M;j++){
cout<<Arr[i][j]<<"\t";
} cout<<"\n";
}

cout<<"\n====================\n";

for (int i=0;i<M;i++) cout<<temp[i]<<"\t";
cout<<"\n";
for (int i=0;i<M;i++){
if (temp2[i]) cout<<temp3[i]<<"\t";
else cout<<"\t";
}
cout<<"\n====================\n";




}
1
Миниатюры
Сортировка столбцов матриц и их сумм по Возрастанию  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2015, 17:07

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

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

Сортировка столбцов массива по убыванию элементов столбцов
Заполнить двумерный числовой массив A целыми числами. Вычислить сумму элементов...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru