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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
alenka77
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 49
#1

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

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

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

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

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

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

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

Строки матрицы расположить по неубыванию их поэлементных сумм - C++
Здравствуйте. Помогите, пожалуйста с задачей. Дана матрица из N строк и М столбцов (1<N<=100,1<M<=50). Выполнить заданную...

Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию суммы элементов - C++
Дана матрица Х. Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию суммы элементов строк (использовать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lawr
366 / 260 / 124
Регистрация: 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]<<' ';
    }
}
alenka77
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 49
13.10.2016, 18:30  [ТС] #3
А в С большие изменения будут в программе? Что меняется,не подскажете?
lawr
366 / 260 / 124
Регистрация: 09.05.2014
Сообщений: 769
14.10.2016, 14:19 #4
alenka77, iostream меняем на stdio.h и соответственно для ввода-вывода вместо cin-cout будут использоваться scanf()-printf(). а в остальном по идее все так же.
alenka77
0 / 0 / 0
Регистрация: 11.10.2015
Сообщений: 49
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;
    }
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6447 / 3094 / 306
Регистрация: 04.12.2011
Сообщений: 8,567
Записей в блоге: 4
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2016, 20:40
Привет! Вот еще темы с ответами:

Расположить строки матрицы по убыванию их последних элементов - C++
В текстовом файле в первой строке записаны два целых числа, разделенные пробелом, – количество строк и столбцов матрицы, в последующих –...

Расположить строки матрицы по убыванию их последних элементов - C++
Доброго времени суток. Буду благодарен за помощь с задачей. Составить программу решения следующей задачи: В текстовом файле в первой...

Упорядочить строки матрицы по убыванию сумм элементов строк - C++
Пожалуйста помогите сделать так, чтобы программа работала так, как требуется: Дана матрица n*m. Упорядочить (переставить) строки матрицы...

Упорядочить строки матрицы по неубыванию сумм положительных элементов - C++
Переформировать матрицу таким образом,что бы ее строки располагались в порядке неубывания сумм их положительных элементов.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.10.2016, 20:40
Ответ Создать тему
Опции темы

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