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

Дана прямоугольная матрица. Найти строку с наибольшей суммой элементов - C++

Восстановить пароль Регистрация
 
Rory
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 7
05.12.2012, 20:20     Дана прямоугольная матрица. Найти строку с наибольшей суммой элементов #1
Как это сделать самым простым способом, как для школьника?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2012, 20:20     Дана прямоугольная матрица. Найти строку с наибольшей суммой элементов
Посмотрите здесь:

Дана целочисленная квадратная матрица, найти количество строк с нечётной суммой элементов. C++
C++ Дана матрица размера МхН.Найти номер ее строки с наибольшей суммой элементов и вывести данный номер, а также значение наибольшей суммы.
Динамические массивы С++ - найти строку с наибольшей и наименьшей суммой элементов C++
C++ Матрица. Найти номер ее ряда с наибольшей суммой элементов и вывести данный ее номер, а также значение наибольшей суммы
C++ Найти строку прямоугольной матрицы с наибольшей и наименьшей суммой элементов.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
05.12.2012, 20:49     Дана прямоугольная матрица. Найти строку с наибольшей суммой элементов #2

Не по теме:

Цитата Сообщение от Rory Посмотреть сообщение
как для школьника?
карандаш, ручку, линейку и листок бумаги приготовили?



Добавлено через 30 секунд
примерно так:
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
#include <iostream>
#include <ctime>
#include <random>
 
 
int main(){
    const int row=5;
    const int col=3;
    int matrix[row][col];
    srand(time(NULL));
    for(int i=0;i<row;++i){
        for (int j=0;j<col;++j){
            matrix[i][j]=rand()%100;
            std::cout.width(3);
            std::cout<<matrix[i][j];
 
        }
        std::cout<<std::endl;
    }
 
    int maxsum=0, maxindex=0;
    for(int i=0;i<col;++i)
        maxsum+=matrix[0][i];
 
    
    for(int i=1, sum=0;i<row;++i,sum=0){
        for (int j=0;j<col;++j)
            sum+=matrix[i][j];
        if (sum>maxsum){
            maxindex=i;maxsum=sum;
        }
    }
    std::cout<<std::endl;
    std::cout<<maxindex+1;
    std::cin.get();
    return 0;
}
Rory
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 7
05.12.2012, 21:04  [ТС]     Дана прямоугольная матрица. Найти строку с наибольшей суммой элементов #3
Спасибо, но это все равно сложно. Например, "стрэйд тайм" и "каут" он вообще не поймет, для чего взялись
JaegerF
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 11
15.04.2015, 14:24     Дана прямоугольная матрица. Найти строку с наибольшей суммой элементов #4
Куча плохих слов.
Можно лучше, но я студент всего лишь, наткнулся, и не выдержал:
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
#include <iostream>
#include <ctime>
#include <random>
using namespace std;
 
void main(){setlocale(LC_ALL,".1251");
    const int V=8;
    const int H=4;
    int maxsum=0, maxnum=0,minsum=0, minnum=0;
    int a[V][H]; int zum[8];  // Меняя V, меняем и массив zum!!!
    int i,j, sum;
    srand(time(0));  // В блок схему нарисовать
 
 
 
       for(int i=0;i<V;++i){ 
        for (int j=0;j<H;++j){
            a[i][j]=rand()%10;  // Присваиваем случайное число
 
            cout.width(3); // Ширина
            cout<<a[i][j];  // Вывод Элемента матрицы
 
        }
        cout<<endl;
    }
       for(i=0;i<V;i++)  // Обнуляем массив для сумм
           zum[i]=0;
 
       for(i=0;i<V;i++)  // Ищем сами суммы и показываем их
        {   for(j=0;j<H;j++)
           {zum[i]+=a[i][j];}
                cout<<zum[i];
                cout<<endl;}
 
       maxsum=zum[0];  // Поиск максимума, первый элемент равен предполагаемому максимуму
       for(i=0;i<V;i++)
           if(maxsum<zum[i])  // Если максимум меньше суммы итой
           {maxsum=zum[i];maxnum=i;}  // Максимум равен этой сумме(на большее заменяем)
 
       minsum=zum[0];  // Поиск минимума, первый элемент равен предполагаемому минимуму
       for(i=0;i<V;i++)   
           if(minsum>zum[i])  // Если минимум больше суммы итой
           {minsum=zum[i];minnum=i;}  // Минимум равен этой сумме, замена  на меньшее
 
 
 
 
       cout<<"Максимальная сумма строки "<<maxsum<<endl;
       cout<<"Номер строки "<<maxnum+1<<endl; // Ибо начинает с нуля в C++!
 
       cout<<"Минимальная сумма строки "<<minsum<<endl;
       cout<<"Номер строки "<<minnum+1<<endl; // Тоже самое
 
 
       system("PAUSE");
}
Вот зачем эти std:: когда можно просто прописать using name space std?!
Вы чё издеваетесь? Приятно каждый раз писать лишнее?

А если возвращает 0, почему нельзя взять void? Религия не позволяет?

А ещё для школьника показывать, вы нарошно делаете так, чтобы ему было не интересно.
10 лет без переписки вам.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
15.04.2015, 18:10     Дана прямоугольная матрица. Найти строку с наибольшей суммой элементов #5
Цитата Сообщение от JaegerF Посмотреть сообщение
Вот зачем эти std:: когда можно просто прописать using name space std?!
Вы чё издеваетесь? Приятно каждый раз писать лишнее?
Примеры конфликтов:
Проясните ситуацию с пространствами имен
Неоднозначность переменной count
ааааааааааааааааа, почему не компилируется?

using namespace std
И не только std
Конфликт имён

Цитата Сообщение от JaegerF Посмотреть сообщение
А если возвращает 0, почему нельзя взять void? Религия не позволяет?
В стандарте - int, всё остальное не переносимо

Цитата Сообщение от JaegerF Посмотреть сообщение
C++
1
int a[V][H]; int zum[8];  // Меняя V, меняем и массив zum!!!
С какого перепугу?
Может тогда уж
C++
1
int a[V][H]; int zum[V];  // ???
C++
1
srand(time(0));  // В блок схему нарисовать
Что за странный комментарий?

C++
1
#include <random>
Нафига, если не используете ничего из этого заголовка? http://www.cplusplus.com/reference/random/
Ну и компилятор должен быть с поддержкой C++11.
Ну и cstdlib не помешает включить
Yandex
Объявления
15.04.2015, 18:10     Дана прямоугольная матрица. Найти строку с наибольшей суммой элементов
Ответ Создать тему
Опции темы

Текущее время: 21:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru