Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 34

Сумма минимальных элементов каждого столбца массива АхВ

17.10.2015, 15:51. Показов 1971. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сам написал код для определение матрицы и вывод его на МСДОС, дальше никак не получается выполнить условие "Найти сумму минимальных элементов каждого столбца заданной матрицы"

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
// 1234.cpp : Defines the entry point for the console application.
//
 
// 1231.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "math.h"
 
using namespace std;
        int main()
        {
const int mmax=100;
int i, j, strok,stolb, mas[mmax][mmax];
int min,minsum;
cout<<"strok :"<<endl;
cin>>strok;
cout<<"stolb :"<<endl;
cin>>stolb;
 
for(i=0; i<strok; i++)
for(j=0; j<stolb; j++)
        {
    cout<<"elements"<<"i-"<<i<<"j-"<<j<<endl;
cin>>mas[i][j];
cout<<endl;
}
cout<<"Matrica A"<<endl;
for(i=0; i<strok; i++)
    {
for(j=0; j<stolb; j++)
cout<<mas[i][j]<<" ";
cout<<endl;
 
} 
cout<<" strok "<<strok;
cout<<" stolb "<<stolb;
        cout<<endl;
        //---------------------------
    
        for( i=0;i<strok;i++)
    {
        minsum=0;
         for( j=0;j<stolb;j++)
        if(j==0)
            minsum=minsum+mas[i][j];
        
        
            
        //{ 
            min=minsum;
        //}
        
        
    }
    cout<<"minsum "<<min<<endl;
    cout<<endl;
 
_getch();
return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.10.2015, 15:51
Ответы с готовыми решениями:

Для двумерного массива с M * N чисел получить вектор с минимальных элементов каждого столбца
Для двумерного массива с M * N чисел получить вектор с минимальных элементов каждого столбца и вектор из номеров строк, в...

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

Найти сумму минимальных элементов каждого столбца заданной матрицы.
Помогите пожалуйста решить. Очень плохой преподаватель. Плохо объясняет. Ничего понять не могу. Задана квадратная матрица 4х4...

6
 Аватар для Barrent
252 / 128 / 54
Регистрация: 04.05.2013
Сообщений: 346
17.10.2015, 16:22
Лучший ответ Сообщение было отмечено Бурхон как решение

Решение

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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <random>
 
using namespace std;
 
int main()
{
    int rows, cols;
    //выделение памяти
    cout << "Rows: ";
    cin >> rows;
    cout << "Columns: ";
    cin >> cols;
    int* mas = new int[rows*cols];  
 
    //генератор чисел
    random_device rd;
    mt19937 mersenne(rd());
    uniform_int_distribution<int> random_element(-5, 5);
    for (int i = 0; i < rows; i++)
        for (int j = 0; j < cols; j++)
            *(mas+i*cols+j) = random_element(mersenne);
 
    //вывод
    cout << "Matrix A: " << endl;
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
            cout << setw(4) << *(mas + i*cols + j);
        cout << endl;
 
    }
    
    //Сумма минималных эелементов
    int sum(0);
    int min_element;
    cout << "Min elements:" << endl;
    for (int j = 0; j < cols; j++) {
        min_element = *(mas + 1 * cols + j);        //запоминаем первый эелемент текущего столбца
        for (int i = 1; i < rows; i++) {
            if (min_element > *(mas + i * cols + j))
                min_element = *(mas + i * cols + j);
        }
        cout << setw(4) << min_element;
        sum += min_element;
    }
    cout << endl << "Sum of min elements: " << sum << endl;
 
    //чистка памяти
    delete[] mas;
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 34
17.10.2015, 17:54  [ТС]
хотелось бы этот код видеть в более облегченном варианте, а то этот замудрен, есть вариант этого кода для начинающего ?
0
 Аватар для Barrent
252 / 128 / 54
Регистрация: 04.05.2013
Сообщений: 346
17.10.2015, 18:08
Единственное мудреное тут - генерация чисел, а все остальное является основами плюсов.
Код
C++
1
*(mas+i*cols+j)
обозначает элемент матрицы, размещенный на i-й строке в j-м столбце.
1
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 34
17.10.2015, 18:51  [ТС]
а можно чтоб рандом убрать и чтоб пользователь сам назначил элементы массива?
разъясните cout << setw(4)<< *(mas + i*cols + j) - что выводится на командную строку перед i-ий и j-ий элемент? код setw(4) что выполняет?
можноли это -
Кликните здесь для просмотра всего текста
{
if (min_element > *(mas + i * colm + j))
min_element = *(mas + i * colm + j);
}
заменить на это
Кликните здесь для просмотра всего текста
{
if (min_element >= *(mas + i * colm + j));
}

и пожалуйста сделайте эту часть кода
Кликните здесь для просмотра всего текста
min_element = *(mas + 1 * cols + j); //запоминаем первый эелемент текущего столбца
for (int i = 1; i < rows; i++) {
if (min_element > *(mas + i * cols + j))
min_element = *(mas + i * cols + j);
}
cout << setw(4) << min_element;
sum += min_element;
для этой части
Кликните здесь для просмотра всего текста
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "math.h"

using namespace std;
int main()
{
const int mmax=10;
int i, j, strok,stolb, mas[mmax][mmax];
int min,minsum;
cout<<"strok :"<<endl;
cin>>strok;
cout<<"stolb :"<<endl;
cin>>stolb;

for(i=0; i<strok; i++)
for(j=0; j<stolb; j++)
{
cout<<"elements"<<"i-"<<i<<"j-"<<j<<endl;
cin>>mas[i][j];
cout<<endl;
}
cout<<"Matrica A"<<endl;
for(i=0; i<strok; i++)
{
for(j=0; j<stolb; j++)
cout<<mas[i][j]<<" ";
cout<<endl;

}
cout<<" strok "<<strok;
cout<<" stolb "<<stolb;
cout<<endl;
//---------------------------

всю остальную чать кода понял кроме генератора и
Кликните здесь для просмотра всего текста
cout << setw(4) << *(mas + i*cols + j);
понял
0
 Аватар для Barrent
252 / 128 / 54
Регистрация: 04.05.2013
Сообщений: 346
17.10.2015, 19:05
setw(4) - резервирует для выводимого числа 4 позиции.
Предлагаемая строка
C++
1
if (min_element >= *(mas + i * colm + j));
Сравнит, но ничего не сделает, а потому не имеет смысла.

Для вашего кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//Сумма минималных эелементов
    int sum(0);
    int min_element;
    cout << "Min elements:" << endl;
    for (int j = 0; j < stolb; j++) {
        min_element = mas[0][j];                              //запоминаем первый эелемент текущего столбца
        for (int i = 1; i < strok; i++) {
            if (min_element > mas[i][j])
                min_element = mas[i][j];
        }
        cout << setw(4) << min_element;
        sum += min_element;
    }
    cout << endl << "Sum of min elements: " << sum << endl;
1
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 34
17.10.2015, 20:04  [ТС]
Окончательный упрашенный код для самых начинающих
Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "math.h"
 
using namespace std;
        int main()
        {
const int mmax = 10;
int i, j, strok, stolb, mas[mmax][mmax]; // matriх
cout << "strok :" << endl;
cin >> strok;
cout << "stolb :" << endl;
cin >> stolb;
 
for (i=0; i<strok; i++)
for (j=0; j<stolb; j++)
        {
    cout << "elements" << "i-" << i << "j-" << j << endl;
cin >> mas[i][j];
cout << endl;
}
cout << "Matrica A" << endl;
for (i=0; i<strok; i++)
    {
for (j=0; j<stolb; j++)
cout << mas[i][j] << " ";
cout << endl;
 
} 
cout << " strok " << strok;
cout << " stolb " << stolb;
        cout << endl;
        //------------------
        int sum(0);
    int min_element;
    cout << "Min elements:" << endl;
    for (int j = 0; j < stolb; j++)
    {
        min_element = mas[0][j];                              //запоминаем первый эелемент текущего столбца
        for (int i = 1; i < strok; i++)
        {
            if (min_element > mas[i][j])
                min_element = mas[i][j];
        }
        cout << min_element;
        sum += min_element;
    }
    cout << endl << "Sum of min elements: " << sum << endl;
    _getch();
    return 0;
        }

Спасибо за помощь Barrent
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.10.2015, 20:04
Помогаю со студенческими работами здесь

Массив: Найти минимальный среди минимальных элементов каждого столбца.
Дана матрица размера 5 x 10. Найти минимальный среди минимальных элементов каждой столбца.

Сумма элементов каждого столбца дверного массива.
НАЙТИ СУММУ ЭЛЕМЕНТОВ КАЖДОГО СТОЛБЦА ДВЕРНОГО МАССИВА.

Найти произведение минимальных элементов каждого столбца
Добрый день! Как сделать произведение минимальных элементов каждого столбца? Я так понимаю нужно искать минимальный элемент в столбце,а...

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

Найти максимум из минимальных элементов каждого столбца матрицы
а) максимум из минимальных элементов каждого столбца; б) количество максимальных элементов массива


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru