Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
alenka77
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 50
1

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

12.10.2016, 09:17. Просмотров 549. Ответов 6
Метки нет (Все метки)

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

Расположить столбцы матрицы по возрастанию сумм модулей их отрицательных нечетных элементов
Дано целочисленную прямоугольную матрицу. 1). Расположите колонки заданной...

Расположить строки матрицы в порядке невозрастания сумм модулей нечетных элементов строк
Дана матрица действительных чисел размера m x n. Переформировать матрицу таким...

Динамические матрицы: расположить строки в порядке невозрастания сумм модулей их отрицательных элементов
Переформировать матрицу таким образом, чтобы её строки располагались в порядке...

Расположить строки матрицы в порядке невозрастания сумм модулей нечетных элементов строк
Здравствуйте. Задача: Дана матрица действительных чисел размера n x m....

Отсортировать строки матрицы по возрастанию сумм положительных элементов
Отсортировать строки матрицы по возрастанию сумм положительных элементов. ...

6
lawr
372 / 266 / 478
Регистрация: 09.05.2014
Сообщений: 769
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]<<' ';
    }
}
1
alenka77
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 50
13.10.2016, 18:30  [ТС] 3
А в С большие изменения будут в программе? Что меняется,не подскажете?
0
lawr
372 / 266 / 478
Регистрация: 09.05.2014
Сообщений: 769
14.10.2016, 14:19 4
alenka77, iostream меняем на stdio.h и соответственно для ввода-вывода вместо cin-cout будут использоваться scanf()-printf(). а в остальном по идее все так же.
1
alenka77
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 50
15.10.2016, 16:43  [ТС] 5
спасибо огромное! очень помогли
0
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;
    }
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7051 / 3354 / 454
Регистрация: 04.12.2011
Сообщений: 9,325
Записей в блоге: 5
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;
}
0
15.10.2016, 20:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2016, 20:40

Отсортировать строки матрицы по возрастанию сумм положительных элементов
Отсортировать строки матрицы по возрастанию сумм положительных элементов.

Внешняя сортировка файла: строки матрицы расположить по возрастанию элементов побочной диагонали
работает, но что то с ней не так, подскажите В текстовом файле задана...

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


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

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

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