0 / 0 / 1
Регистрация: 11.11.2015
Сообщений: 16

В целочисленной матрице поменять местами столбец с минимальной суммой со столбцом с максимальной суммой

30.12.2015, 18:34. Показов 2179. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана прямоугольная матрица nxm целых чисел (n,m<10 – ввод с клавиатуры, значения элементов массива в диапазоне [a, b] – вводятся случайным образом, a и b вводятся с клавиатуры). Вывести на экран исходную матрицу. Поменять местами столбец с минимальной суммой со столбцом с максимальной суммой. Реализовать задачу через функции. Вывести на экран преобразованную матрицу
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.12.2015, 18:34
Ответы с готовыми решениями:

В заданной матрице поменять строку с минимальной суммой со строкой с максимальной суммой
помогите с кодом

В матрице поменять местами столбец с минимальной суммой со столбцом с максимальной
Дана прямоугольная матрица n x m целых чисел. Поменять местами столбец с минимальной суммой со столбцом с максимальной суммой .

Массив: В произвольно заданной матрице размера 4*6 определить строку с максимальной суммой элементов и столбец с минимальной суммой.
В произвольно заданной матрице размера 4*6 определить строку с максимальной суммой элементов и столбец с минимальной суммой.

3
 Аватар для Scorpik1
7 / 7 / 5
Регистрация: 27.07.2011
Сообщений: 32
30.12.2015, 23:28
Посмотрите. Если есть вопросы, спрашивайте.
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
78
79
80
81
82
83
84
85
86
87
88
89
# include <iostream>
#include <ctime>
using namespace std;
void init(int** Mas, int n, int m);
void print(int** Mas, int n, int m);
void solution(int** Mas, int n, int m);
int main()
{
    int n, m;
    do{
        cout << "Vvedi n, m <10 :";
        cin >> n >> m;
    } while (n > 9 || m > 9 || n < 1 || m < 1);
    //задание двумерного массива
    int** Mas = new int *[n];
    for (int i = 0; i < n; ++i)
        Mas[i] = new int[m];
    init(Mas, n, m);
    print(Mas, n, m);
    solution(Mas, n, m);
    cout << "New:\n";
    print(Mas, n, m);
 
    delete[]Mas;
    return 0;
 
}
 
void init(int** Mas, int n, int m){
    int a, b;
    cout << "a:";
    cin >> a;
    cout << "\nb:";
    cin >> b;
    srand(time(0)); // автоматическая рандомизация
    for (int i = 0; i < n; i++){
        for (int j = 0; j < m; j++)
            // формула генерации случайных чисел по заданному диапазону
            Mas[i][j] = a+ rand() % b;
    }
    system("cls");
}
 
void print(int** Mas, int n, int m){
    for (int i = 0; i < n; i++){
        for (int j = 0; j < m; j++){
        cout << Mas[i][j] << " ";
        if (j == m - 1) cout<<"\n";
    }
}
}
 
void solution(int** Mas, int n, int m){
    int sum=0, sum_Min=0, sum_Max=0, iMin=0, iMax=0;
 
    int* tmpSum = new int [n];
    //записываем суммы столбцов в массив
    for (int j = 0; j< m; j++){
        for (int i = 0; i< n; i++){
            sum = sum + Mas[i][j];
            if (i == n - 1){
                tmpSum[j] = sum;
                sum = 0;
            }
        }
    }
 
    //ищем в каком из столбцов суммы были меньшей и наибольшей
    sum_Max = tmpSum[0];
    sum_Min = tmpSum[0];
 
    for (int i = 0; i < m; i++){
        if (tmpSum[i] < sum_Min){
            iMin = i;
            sum_Min = tmpSum[i];
        }
        if (tmpSum[i] > sum_Max){
            iMax = i;
            sum_Max = tmpSum[i];
        }
    }
 
    // переставляем 
    for (int i = 0; i < n; i++){
        swap(Mas[i][iMin], Mas[i][iMax]);
        }
 
    delete []tmpSum;
}
0
 Аватар для Зи
92 / 11 / 10
Регистрация: 09.12.2015
Сообщений: 30
30.12.2015, 23:47
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
78
79
80
81
82
#include <iostream>
#include <ctime>
using namespace std;
void fillMatrix(int **matrix, int n, int m);
void showMatrix(int **matrix, int n, int m);
void sortMatrix(int **matrix, int n, int m);
 
 
void main() 
{
    srand(time(NULL));
    int n, m;
    do {
        cout << "Input the number of lines: ";
        cin >> n;
        cout << "Input the number of columns: ";
        cin >> m;
    
        } while ((n >= 10) || (m >= 10));
    
    
    int **matrix = new int*[n];
    for (int i = 0; i < n; i++) matrix[i] = new int[m];
    
    fillMatrix(matrix, n, m);
    showMatrix(matrix, n, m);
    sortMatrix(matrix, n, m);
    showMatrix(matrix, n, m);
 
 
    for (int i = 0; i < n; i++) delete[] matrix[i];
    delete[] matrix;
    system("pause");
}
 
void fillMatrix(int **matrix, int n, int m)
{
    int a, b;
    cout << "Input a: ";
    cin >> a;
    cout << "Input b: ";
    cin >> b;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++) matrix[i][j] = rand() % (b - a + 1) + a;
}
void showMatrix(int **matrix, int n, int m)
{
    cout << "Matrix: " << endl<<endl;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++) cout << matrix[i][j] << "  ";
        cout << endl<<endl;
    }
}
void sortMatrix(int **matrix, int n, int m)
{
        
    int sum_min=0, sum_max = 0, in_min=0, in_max=0; //in_min, in_max - индексы столбцов
    for (int i = 0; i < n; i++) {
                                    sum_min += matrix[i][0];
                                    sum_max += matrix[i][0];
                                }
    
    for (int j = 0; j < m; j++) {
                                        int sum=0;
                                        for (int i = 0; i < n; i++) sum += matrix[i][j];
                                        if (sum > sum_max) {
                                                                sum_max = sum;
                                                                in_max = j;
                                                           }
                                        if (sum < sum_min) {
                                                                sum_min = sum;
                                                                in_min = j;
                                                           }
                                    }
    cout << in_min + 1 << " is the column of min sum"<<endl;
    cout << in_max + 1 << " is the column of max sum"<<endl;
    
    for (int i = 0; i < n; i++) swap(matrix[i][in_min], matrix[i][in_max]);
                                
 
}
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
31.12.2015, 00:03
Veronika988, Если я всё правильно понял.
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
#include <iostream>
#include <random>
#include <ctime>
#include <conio.h>
 
using namespace std;
 
int n, k;
 
void print( int** );
void swapm( int**, int, int );
void sum( int**, int&, int& );
 
 
int main() {
    mt19937 gen.seed( time( nullptr ) );
    uniform_int_distribution<int> dist( -100, 100 );
    int a, b;
    do cin >> n >> k;
    while( n > 10 || k > 10 || n < 1 || k < 1 );
    int arr[n][k];
    int sum[n];
    for( int i = 0; i < n; i++ )
        for( int j = 0; j < n; j++ )
            cin >> arr[i][j];
    cin >> a >> b;
    for( int i = a; i < b; i++ ) {
        arr[i/k][i-k*(i/k)] = dist( gen );
    }
    print( arr );
    int min = 0, max = 0;
    sum( arr, min, max );
    swapm( arr, min, max );
    print( arr );
    getch();
    return 0;
}
 
void print( int** arr ) {
    for( const auto& i : n ) {
        for( const auto& j : k ) {
            cout << arr[i][j];
        }
        cout << endl;
    }
}
 
void swapm( int** arr, int min, int max ) {
    for( int i = 0; i < k; i++ )
        swap( arr[min][i], arr[max][i] );
    cout << endl;
}
 
void sum( int** arr, int& min, int& max ) {
    for( const auto& i : n ) {
        for( const auto& j : k ) {
            sum[i] += arr[i][j];
        }
    }
    int min = 0, max = 0;
    for( int i = 0; i < n; i++ ) {
        if( summ[i] < summ[min] ) min = i;
        if( summ[i] > summ[max] ) max = i;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.12.2015, 00:03
Помогаю со студенческими работами здесь

Двумерный массив: поменять местами столбец с минимальной суммой элементов столбца с первым столбцом массива
3. Дан двумерный массив размером n x m. Поменять местами столбец с минимальной суммой элементов столбца с первым столбцом массива.

В матрице поменять местами строки с максимальной и минимальной суммой элементов
Помогите плиз. Заданы 2 матрицы действительных чисел размером 5х6 и 8х7. В матрице поменять местами строки с максимальной и минимальной...

В двумерном массиве поменять местами строку с максимальной суммой с минимальной суммой
Нам задали написать 2 различные проги для такого задания В двумерном массиве поменять местами строку с максимальной суммой с минимальной...

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

В матрице X найти строку с минимальной и столбец с максимальной суммой элементов
Спасайте!Не могу решить(( Дана матрица X размерности nXm.В матрице X найти строку с минимальной и столбец с максимальной суммой...


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

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

Новые блоги и статьи
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
PowerShell и онлайн сервисы. Валюта (floatrates.com руб.)
iNNOKENTIY21 11.11.2025
PowerShell функция floatrates-rub Примеры вызова: # Указанная валюта 'EUR' floatrates-rub -Code 'EUR' # Список имеющихся кодов валют floatrates-rub -Available function floatrates-rub {
PowerShell и онлайн сервисы. Погода (RP5.ru)
iNNOKENTIY21 11.11.2025
PowerShell функция Get-WeatherRP5rss для получения погоды с сервиса RP5 Примеры вызова Get-WeatherRP5rss с указанием id 5484 — Москва (восток, Измайлово) и переносом строки:. . .
PowerShell и онлайн сервисы. Погода (wttr)
iNNOKENTIY21 11.11.2025
PowerShell Функция для получения погоды с сервиса wttr Примеры вызова: Погода в городе Омск с прогнозом на день, можно изменить прогноз на более дней, для этого надо поменять запрос:. . .
PowerShell и онлайн сервисы. Валюта (ЦБР)
iNNOKENTIY21 11.11.2025
# Получение курса валют function cbr (] $Valutes = @('USD', 'EUR', 'CNY')) { $url = 'https:/ / www. cbr-xml-daily. ru/ daily_json. js' $data = Invoke-RestMethod -Uri $url $esc = 27 . . .
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru