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

Найти строку матрицы в которой сумма элементов максимальна

20.10.2023, 19:56. Показов 498. Ответов 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
#include <iostream>
using namespace std;
 
int main() {
    int a,b,c,strochki[3][3],summ,summa[3],stroch[3],max,maximum=0;
    for(a=0;a<=2;a++)
    {
        for(b=0;b<=2;b++)
        {
            cin>>strochki[a][b];
        }
        summa[a]=0;
    }
    for(a=0;a<=2;a++)
    {
        for(b=0;b<=2;b++)
        {
          summa[a]+=strochki[a][b];
          
        }
     
   }
   
    
    
}
помогите пожалуйста как лучше сделать.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.10.2023, 19:56
Ответы с готовыми решениями:

Найти строку матрицы, в которой сумма положительных элементов максимальна
Разработать программу, которая формирует двумерный массив L размером N x M вручную, или с помощью генератора случайных чисел (по выбору...

Найти строку, в которой сумма модулей элементов максимальна и назвать её номер
нашёл программу на Паскале пытался перевести на с++ # include &lt;stdio.h&gt; # include &lt;iostream.h&gt; const int n=4; void main() {...

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

6
Лежебока
 Аватар для Donkix
328 / 244 / 95
Регистрация: 12.05.2021
Сообщений: 1,429
Записей в блоге: 2
20.10.2023, 21:21
Sptt, что вывести на экран, строку с максимальной суммой элементов или номер строки?
0
0 / 0 / 0
Регистрация: 08.06.2023
Сообщений: 19
20.10.2023, 21:31
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
#include <stdlib.h>
using namespace std;
 
 
 
int main() {
    
    srand(time(0));
 
int m[3][3];
 
for(int i = 0; i < 3; i ++)
   for(int j = 0; j < 3; j ++)
       m[i][j] = rand() % 3 + 1;
 
 
 
int sum[3] = {0};
 
for(int i = 0; i < 3; i ++)
   for(int j = 0; j < 3; j ++) {
    
       sum[i] += m[i][j];
   
   }
   
   
int buf = 0;
int score = 1;
 
for(int i = 2; i >= 0; i --)
   if(sum[i] > sum[i - 1]) {
    
       buf = sum[i];
       sum[i] = sum[i - 1];
       sum[i - 1] = buf;
       score ++;
       
   }
   
   
   
for(int i = 0; i < 3; i ++) {
   for(int j = 0; j < 3; j ++){
       cout << m[i][j] ;
   }
   cout << '\n';
}
 
cout << "max is: " << sum[0] <<'\n';
cout << "num of the line :" << score;
   
}
0
Лежебока
 Аватар для Donkix
328 / 244 / 95
Регистрация: 12.05.2021
Сообщений: 1,429
Записей в блоге: 2
20.10.2023, 21:35
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
#include <iostream>
 
const int SIZE = 3;
 
int main()
{
    int strochki[SIZE][SIZE], summ = 0, max = 0, pos = 0;
    
    for(int i = 0; i < SIZE; i++)
        for(int j = 0; j < SIZE; j++)
            std::cin >> strochki[i][j];
            
    for(int i = 0; i < SIZE; i++)
    {
        for(int j = 0; j < SIZE; j++)
          summ += strochki[i][j];
        
        if(summ >= max)
        {
            max = summ;
            pos = i;
        }
    }
    std::cout << "line number = " << pos+1 << std::endl;
    for(int j = 0;j < SIZE;j++)
        std::cout << strochki[pos][j] << " ";
        
    return 0;
}
могу предложить такой вариант
0
0 / 0 / 0
Регистрация: 08.06.2023
Сообщений: 19
20.10.2023, 22:01
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
#include <iostream>
#include <stdlib.h>
using namespace std;
 
//столбцы и строки
int size = 3;
 
int limit = 5;
 
int main() {
    
srand(time(0));
//просто массив
int m[size][size];
 
//заполняем
for(int i = 0; i < size; i ++)
   for(int j = 0; j < size; j ++)
       m[i][j] = rand() % limit + 0;
 
 
//массив сумм
int sum[size] = {0};
 
//делаем суммы
for(int i = 0; i < size; i ++)
   for(int j = 0; j < size; j ++) {
    
       sum[i] += m[i][j];
   
   }
   
   
int buf = 0;
int score = 1;
 
//сортировка сумм , большая будет первой
for(int i = size-1; i >= 0; i --)
   if(sum[i] > sum[i - 1]) {
    
       buf = sum[i];
       sum[i] = sum[i - 1];
       sum[i - 1] = buf;
       score ++;
       
   }
   
   
//показать матрицу
for(int i = 0; i < size; i ++) {
   for(int j = 0; j < size; j ++)
       cout << m[i][j] ;
   
   cout << '\n';
}
 
//большая сумма
cout << "max is: " << sum[0] <<'\n';
//номер строки из которой она получилась
cout << "num of the line :" << score;
   
}
Не знаю как редактировать сообщение, с телефона набирал, не очень удобно. По этому выкладываю ещё раз с полностью.
0
0 / 0 / 0
Регистрация: 20.10.2023
Сообщений: 3
20.10.2023, 22:17  [ТС]
Всем спасибо кто помог!
0
Модератор
Эксперт С++
 Аватар для zss
13770 / 10963 / 6491
Регистрация: 18.12.2011
Сообщений: 29,240
21.10.2023, 10:03
pupitan,
C++
1
2
3
4
5
6
7
8
9
10
11
12
include <iostream>
#include <cstdlib> // !!!!
#include <ctime>   // !!!!
using namespace std;
//столбцы и строки
const int size = 3;  // !!!!
const int limit = 5; // !!!!
 
int main() {
    srand((unsigned)time(0));  // !!!!
    //просто массив
    int m[size][size];
А по хорошему, Вам следовало бы посмотреть тему
Образцы (шаблоны) программ для типовых задач
из раздела ВАЖНЫЕ ТЕМЫ.
Этот образец требует совсем небольшого дополнения для решения Вашей задачи
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <iostream>
#include <clocale>
#include <cstdlib>
#include <ctime>
//
// Создание матрицы
//
int ** Create( size_t n, size_t m ) {
    int ** M = new int * [n];
    for ( size_t i = 0; i < n; ++i ) {
        M[i] = new int [m];
    }
    return M;
}
//
// Удаление матрицы
//
void Free( int ** M, size_t n ) {
    for ( size_t i = 0; i < n; ++i ) {
        delete [] M[i];
    }
    delete [] M;
}
//
//---- ввод матрицы--------------------------------------
//
void Input( int ** M, size_t n, size_t m ) {
    for ( size_t i = 0; i < n; ++i ) {
        for ( size_t j = 0; j < m; ++j ) {
            std::cout << "M[" << i << "][" << j << "] = ";
            std::cin >> M[i][j];
        }
    }
}
//
// заполнение матрицы случайными числами из диапазона [0, 99] -----------
//
void FillRandomNumbers(int **matrix, const size_t rows, const size_t columns)
{
    srand((unsigned int)time(0)); // инициализируем ПГСЧ
 
    for (size_t row=0; row < rows; row++)
        for (size_t column=0; column < columns; column++)
            matrix[row][column] = rand() % 100; // присваиваем СЧ
}
//
//-------- Печать матрицы ------------------------------------------------
//
void Print( int ** M, size_t n, size_t m ) {
    for ( size_t i = 0; i < n; ++i ) {
        for ( size_t j = 0; j < m; ++j ) {
            std::cout<<M[i][j]<<' ';
        }
        std::cout<<std::endl;
    }
}
//
//-------- Печать вектора ------------------------------------------------
//
void Print1( int *M, size_t n) {
    for ( size_t j = 0; j < n; ++j ) {
        std::cout<<M[j]<<' ';
    }
    std::cout<<std::endl;
}
//
// пример обработки матрицы - подсчет сумм в каждой строке
//
void Process( int ** M,int *Sum, size_t n, size_t m ) {
    for ( size_t i = 0; i < n; ++i ) {
        Sum[i] = 0;
        for ( size_t j = 0; j < m; ++j ) {
            Sum[i] += M[i][j];
        }
    }
}
 
// ...
size_t MaxNum(int *M, size_t n) {
    size_t j=0;
    for ( size_t i = 1; i < n; ++i ) {
        if(M[i] > M[j])
            j=i;
    }
    return j;
}
 
int main()
{
    setlocale( LC_ALL, "Rus" ); 
 
    size_t n, m;
    std::cout << "Введите количество строк матрицы: ";
    std::cin >> n;
    std::cout << "Введите количество столбцов матрицы: ";
    std::cin >> m;
 
    int ** A = Create( n, m );
    FillRandomNumbers(A,n,m);
    Print(A,n,m);
 
    int* S=new int[n]; 
    Process( A, S, n, m );
    size_t k=MaxNum(S,n); // добавлена эта строка для нахождения номера с макс. суммой 
 
    std::cout<<"Максимальная сумма равна "<<S[k]
        <<" в "<<k<< " строке матрицы\n";
    Print1(A[k],m);
 
    delete[] S;
    Free( A, n );
    system( "pause" );
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.10.2023, 10:03
Помогаю со студенческими работами здесь

Среди строк содержащих нули найти строку, в которой сумма модулей отрицательных элементов максимальна
Среди тех строк, которые содержат нули, найти номер первой строки, в которой сумма модулей отрицательных элементов максимальна. Не...

Поменять местами первую строки и строку, сумма элементов которой максимальна
Дан двумерный массив. Поменять местами первую строку и ту строку, сумма элементов которой максимальна.

Номер строки квадратной матрицы, сумма элементов которой максимальна
Написать программу, которая определяет номер строки квадратной матрицы, сумма элементов которой максимальна. #include...

Определить номер строки квадратной матрицы, сумма элементов которой максимальна
Доброго времени суток уважаемые, у меня есть такой код #include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &quot;conio.h&quot;...

Сформировать из фрагмента матрицы А(na,ma) новую матрицу B(nb,mb), сумма элементов в которой максимальна.
Помогите с задачей на С++, пожалуйста. Сформировать из фрагмента матрицы А(na,ma) новую матрицу B(nb,mb), сумма элементов в которой...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru