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

Расположить строки матрицы по возрастанию сумм их элементов - C++

Восстановить пароль Регистрация
 
alenka77
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 46
12.10.2016, 09:17     Расположить строки матрицы по возрастанию сумм их элементов #1
Помогите,пожалуйста,с кодом! Задание: Дана матрица А(n x n). Расположить строки матрицы по возрастанию сумм их элементов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2016, 09:17     Расположить строки матрицы по возрастанию сумм их элементов
Посмотрите здесь:

Строки матрицы расположить по неубыванию их поэлементных сумм C++
Отсортировать строки матрицы по возрастанию сумм положительных элементов C++
Отсортировать строки матрицы по возрастанию сумм положительных элементов C++
Упорядочить строки матрицы по убыванию сумм элементов строк C++
Расположить строки матрицы по убыванию их последних элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lawr
 Аватар для lawr
342 / 236 / 114
Регистрация: 09.05.2014
Сообщений: 723
12.10.2016, 12:15     Расположить строки матрицы по возрастанию сумм их элементов #2
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
#include <iostream>
int main(){
    const int n=5;
    int A[n][n], Sum[n];
    for (int i=0; i<n; i++)
    {
        Sum[i]=0;
        for (int j=0; j<n; j++)
        {
            std::cin>>A[i][j];
            Sum[i]+=A[i][j];
        }
    }
    for (int i=0; i<n-1; i++)
        for (int k=i+1; k<n; k++)
            if (Sum[i]>Sum[k]){
                for (int j=0; j<n; j++){
                    int temp=A[i][j];
                    A[i][j]=A[k][j];
                    A[k][j]=temp;
                }
                int temp=Sum[i];
                Sum[i]=Sum[k];
                Sum[k]=temp;
            }
    std::cout<<"modified array:";
    for (int i=0; i<n; i++){
        std::cout<<std::endl;
        for (int j=0; j<n; j++)
            std::cout<<A[i][j]<<' ';
    }
}
alenka77
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 46
13.10.2016, 18:30  [ТС]     Расположить строки матрицы по возрастанию сумм их элементов #3
А в С большие изменения будут в программе? Что меняется,не подскажете?
lawr
 Аватар для lawr
342 / 236 / 114
Регистрация: 09.05.2014
Сообщений: 723
14.10.2016, 14:19     Расположить строки матрицы по возрастанию сумм их элементов #4
alenka77, iostream меняем на stdio.h и соответственно для ввода-вывода вместо cin-cout будут использоваться scanf()-printf(). а в остальном по идее все так же.
alenka77
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 46
15.10.2016, 16:43  [ТС]     Расположить строки матрицы по возрастанию сумм их элементов #5
спасибо огромное! очень помогли
Dsasdf
Заблокирован
15.10.2016, 19:35     Расположить строки матрицы по возрастанию сумм их элементов #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 int init[3][5] = {
        {1, 2, 3, 4, 5},
        {1, 2, 3, 4, 5},
        {1, 2, 40, 4, 5},
    };
    std::tuple<int, int> sum[3];
    vector<int> orig(*init, *init + 15);
    for (int i = 0; i < 3; i++)
        sum[i] = std::make_tuple(i, std::accumulate(*init + 5 * i, *init + 5 * i + 5, 0));
    std::sort(sum, sum + 3, [](const std::tuple<int, int> & t1, const std::tuple<int, int> &t2) {
        return std::get<1>(t1) < std::get<1>(t2);
    });
    for (int i = 0; i < 3; i++) {
        std::copy(orig.begin() + std::get<0>(sum[i])*5, orig.begin() + std::get<0>(sum[i])*5 + 5, *init + 5 * i);
    }
    //out 
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 5; j++)
            cout << init[i][j] << " ";
        cout << endl;
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2016, 20:40     Расположить строки матрицы по возрастанию сумм их элементов
Еще ссылки по теме:

C++ Расположить столбцы матрицы в порядке возрастания элементов K-ой строки
C++ Builder Упорядочить столбцы матрицы по возрастанию сумм их элементов
C++ Расположить строки матрицы в порядке невозрастания сумм модулей нечетных элементов строк

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

Или воспользуйтесь поиском по форуму:
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6165 / 2894 / 282
Регистрация: 04.12.2011
Сообщений: 7,694
Записей в блоге: 3
15.10.2016, 20:40     Расположить строки матрицы по возрастанию сумм их элементов #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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
#include <ctime> 
#include <cstdlib>
using namespace std;
 
int summ(int * a, int n)
{
int i(0), s(0);
for( ; i<n; ++i )s+=a[i];
return s;
}
 
int main(int argc, char* argv[])
{
int i=0, j=0, n=5, **matrix;
 
matrix= new int*[n];
 
for ( i=0; i<n; ++i)matrix[i]=new int[5];
 
srand((int)time(0));
 
for( i=0; i<n; ++i)
for( j=0; j<n; ++j)
matrix[i][j]=rand()%(2*n);
 
for( i=0; i<n; ++i)
    {
        for( j=0; j<n; ++j)
        {
        cout.width(3);
        cout<<matrix[i][j]<<'\t';
        }
        cout<<"\tsum= "<<summ(matrix[i], n)<<endl;
 
    }
int *temp;
for ( i=0; i<n-1; i++){
for ( j=i+1; j<n; j++){
            if (summ(matrix[i], n) > summ(matrix[j], n))
            {                  
                   temp=matrix[i];
                   matrix[i]=matrix[j];
                   matrix[j]=temp;
            }
            
                               
}
}
    cout<<endl;
for( i=0; i<n; ++i)
    {
        for( j=0; j<n; ++j)
        {
        cout.width(3);
        cout<<matrix[i][j]<<'\t';
        }
        cout<<"\tsum= "<<summ(matrix[i], n)<<endl;
 
    }
 
cout<<endl;
 
for ( i=0; i<n; ++i)delete[] matrix[i];
delete [] matrix;
 
system("pause");
return 0;
}
Yandex
Объявления
15.10.2016, 20:40     Расположить строки матрицы по возрастанию сумм их элементов
Ответ Создать тему
Опции темы

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