Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 31.10.2015
Сообщений: 9
1

Переставить строки матрицы так, чтобы суммы элементов строк были расположены в порядке их возрастания

26.05.2016, 10:49. Просмотров 3249. Ответов 2
Метки нет (Все метки)

Задать двумерный массив размерами m и n. Обработать массив согласно заданию, вывести на печать исходный и обработанный массивы. «m=4,n=5.Переставить строки массива так, чтобы сумма элементов строк были расположены в порядке их возрастания.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2016, 10:49
Ответы с готовыми решениями:

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

Перестроить строки матрицы так, чтобы они были расположены по возрастанию в лексикографическом порядке
Дана матрица А из целых чисел размером MxN. Перестроить строки матрицы так, чтобы они были...

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

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

2
816 / 619 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
26.05.2016, 13:58 2
Лучший ответ Сообщение было отмечено Fizalina как решение

Решение

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
#include <iostream>
 
int main(void){
    const int m = 4, n = 5;
    int mat[n][m] = {
        { 5, 5, 5, 5 },
        { 3, 3, 3, 3 },
        { 1, 1, 1, 1 },
        { 4, 4, 4, 4 }, 
        { 2, 2, 2, 2 }
    };
 
    int i, j, sum[n];
    for(i = 0; i < n; ++i){
        sum[i] = 0;
        for(j = 0; j < m; ++j)
            sum[i] += mat[i][j];
    }
 
    //сортировка выбором
    int k;
    for(i = 0; i < n; ++i){
        k = i;
        for(j = i + 1; j < n; ++j){
            if(sum[j] < sum[k])
                k = j;
        }
 
        if(k != i){
            std::swap(sum[k], sum[i]);
            for(j = 0; j < m; ++j)
                std::swap(mat[k][j], mat[i][j]);
        }
    }
 
    //вывод
    for(i = 0; i < n; ++i){
        for(j = 0; j < m; ++j)
            std::cout << mat[i][j] << ' ';
        std::cout << std::endl;
    }
    return 0;
}
0
310 / 283 / 200
Регистрация: 21.02.2013
Сообщений: 674
26.05.2016, 15:11 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
#include <iostream>
#include <cstdlib>
#include <iomanip>
#define N 5
#define M 10
using namespace std;
 
void FillArr(int a[][M]){
   for(int i = 0; i < N; i++)
   {
        for(int j = 0; j < M; j++)
        {
            a[i][j] = -25 + rand()% 51;
        }
   }
}
void PrintArr(int a[][M]){
   for(int i = 0; i < N; i++)
   {
        int sum =0;
        for(int j = 0; j < M; j++)
        {
            cout<< setw(4) << a[i][j];
            sum+= a[i][j];
        }
        cout << setw(11)<<"Summa: "<< sum << endl;
   }
}
void SortArr(int a[][M])
{
    int sum = 0, min = 0, temp;
 
    for(int i = 0; i< N; i++)
    {
        for(int l = 0; l < M; l++){
            min += a[i][l];
        }
        //////////////////////////////////
        for(int k = i + 1; k < N; k++)
        {
            for(int j = 0; j < M; j++)
            {
                sum += a[k][j];
            }
            if (sum < min)
            {
                min = sum;
                for(int j = 0; j < M; j++)
                {
                    temp = a[i][j];
                    a[i][j] = a[k][j];
                    a[k][j] = temp;
                }
            }
            sum = 0;
 
        }
    }
 
}
 
int main()
{
 
 
   srand(time(NULL));
    int array[N][M];
    FillArr(array);
    PrintArr(array);
    SortArr(array);
    cout << "sorted array"<< endl;
    PrintArr(array);
   return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2016, 15:11

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

Переставить местами столбцы массива А так, чтобы суммы элементов столбцов оказались расположены в порядке убывания
Переставить местами столбцы массива А так, чтобы суммы элементов столбцов оказались расположены в...

Поменять значения переменных a,b,c,d так, чтобы они были расположены в порядке возрастания
Поменять значения переменных a,b,c,d так, чтобы они были расположены в порядке возрастания...

Переставить строки матрицы так чтобы их последнее элементы были в порядке невозрастания
Задача:Дана матрица порядка N.Переставить строки матрицы так чтобы их последнее элементы были в...

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

Переставить элементы так, чтобы они были расположены по возрастанию
3. Дан массив В, состоящий из n элементов. Элементы массива ввести в программе. Переставить...

Переставить элементы массива так, чтобы они были расположены по убыванию
Сортировка выбором. Дана последовательность чисел a1,a2,...an. Требуется переставить элементы так,...


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

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

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