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

Вычислить сумму элементов для каждой строки - C++

Восстановить пароль Регистрация
 
табаков
1 / 1 / 0
Регистрация: 13.01.2012
Сообщений: 25
13.01.2012, 12:38     Вычислить сумму элементов для каждой строки #1
Вычислить сумму элементов для каждой строки. Вывести на экран строки с максимальным и минимальным значениями суммы. N <= 5, M <= 10
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2012, 12:38     Вычислить сумму элементов для каждой строки
Посмотрите здесь:

Вычислить сумму минимальных элементов каждой строки C++
Для каждой матрицы вычислить сумму элементов строк и определить наименьшее значение этих сумм и номер соответствующей строки C++
C++ Вычислить сумму максимальных элементов каждой строки матрицы
C++ Вычислить и запомнить сумму и число положительных элементов каждой строки матрицы
Вычислить сумму элементов каждой нечетной строки матрицы (с использованием классов и динамической памяти) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.01.2012, 12:49     Вычислить сумму элементов для каждой строки #2
табаков, если массивы в стеке создавать, то подойдет стандартный accumulate для вычисления суммы.
табаков
1 / 1 / 0
Регистрация: 13.01.2012
Сообщений: 25
13.01.2012, 13:00  [ТС]     Вычислить сумму элементов для каждой строки #3
я бы хотел код увидеть
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.01.2012, 13:05     Вычислить сумму элементов для каждой строки #4
C++
1
2
3
4
5
6
7
template <class T>
T SumRow (T *begin, T *end)
{
    return (begin != end) ? *begin + SumRow (begin + 1, end) : 0;
}
 
std::cout << SumRow (&arr[1][0], &arr[1][3]) << " " << std::accumulate (&arr[0][0], &arr[0][3], 0) << std::endl;
Дальше сами сможете?
AzaKendler
 Аватар для AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
13.01.2012, 14:38     Вычислить сумму элементов для каждой строки #5
что то пытался пытался через STL решить полностью. хня какая то выходит конечно.
если кто хорошо знает STL, подскажите как в таком задачке уйти от явных циклов.

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
#include <algorithm>
#include <vector>
#include <numeric>
using std::vector;
using std::min_element;
using std::max_element;
using std::accumulate;
 
  template< class T, class B>void calc(T* beg, B d1,B d2)
 {
    
    B tempval = 0;
 
     vector<T> vec;
     vec.reserve(d1); 
 
     while(d1--)
     {
    int z = accumulate(beg,beg+d2,0);
    vec.push_back(z);
    tempval = 0;
    beg+=d2;
     } 
 
    cout<<*min_element(vec.begin(),vec.end())<<"\n";
    cout<<*max_element(vec.begin(),vec.end())<<"\n";    
};
 
 
 
int main ()
{
    
int mass [5][4] = {1,2,3,4,5,6,7,8,22,33,44,55,12,12,34,56,67,8,45,6};      
calc(&mass[0][0],5,4);
 
return 0;
 
}
Изображения
 
AzaKendler
 Аватар для AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
13.01.2012, 14:56     Вычислить сумму элементов для каждой строки #6
Цитата Сообщение от AzaKendler Посмотреть сообщение
что то пытался пытался через STL решить полностью. хня какая то выходит конечно.
если кто хорошо знает STL, подскажите как в таком задачке уйти от явных циклов.

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
#include <algorithm>
#include <vector>
#include <numeric>
#inlcude <iostream>
using std::cout;
using std::vector;
using std::min_element;
using std::max_element;
using std::accumulate;
 
  template< class T, class B>void calc(T* beg, B d1,B d2)
 {
    
    B tempval = 0;
 
     vector<T> vec;
     vec.reserve(d1); 
 
     while(d1--)
     {
    int z = accumulate(beg,beg+d2,0);
    vec.push_back(z);
    tempval = 0;
    beg+=d2;
     } 
 
    cout<<*min_element(vec.begin(),vec.end())<<"\n";
    cout<<*max_element(vec.begin(),vec.end())<<"\n";    
};
 
 
 
int main ()
{
    
int mass [5][4] = {1,2,3,4,5,6,7,8,22,33,44,55,12,12,34,56,67,8,45,6};      
calc(&mass[0][0],5,4);
 
return 0;
 
}
......
Yandex
Объявления
13.01.2012, 14:56     Вычислить сумму элементов для каждой строки
Ответ Создать тему
Опции темы

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