Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
ekzamenhelp
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 9
#1

Разработать функцию, которая находит сумму в каждой строке матрицы, а среди сумм - максимум - C++

14.01.2013, 11:47. Просмотров 1677. Ответов 40
Метки нет (Все метки)

Разработать функцию, которая для произвольной матрицы находит сумму в каждом рядке матрицы а среди сумм - максимум.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2013, 11:47
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Разработать функцию, которая находит сумму в каждой строке матрицы, а среди сумм - максимум (C++):

Составить функцию которая находит наибольшую сумму элементов строк матрицы - C++
Привет. Помогите составить функцию которая находит наибольшую сумму элементов строк матрицы.

Максимум среди сумм элементов диагоналей матрицы: исправить - C++
Задача, выводит максимум среди сумм элементов диагоналей матрицы. Помогите, пожалуйста исправить что бы нормально выводилась матрица,...

Определить максимум среди сумм элементов диагоналей матрицы - C++
Дана целочисленная квадратная матрица. Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. ...

Определить максимум матрицы среди сумм диоганалей паралельных главной - C++
помогите пожалуйста мне нужно написать программу на си : дана целочисленная квадратная матрица 1)определить произведение элементов в...

Максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы - C++
надо короче чтоб прога искала максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. У меня если квадратная...

Максимум среди сумм элементов диагоналей, параллельной главной диагонали матрицы - C++
int i,j, max = 0,sum = 0,index = n-1,dlina = 1; while(index) { for(i = 0,j = index; i < dlina; ++i,...

40
vxg
Модератор
3222 / 2025 / 231
Регистрация: 13.01.2012
Сообщений: 7,852
14.01.2013, 11:59 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int get_max_row_sum(int **a, int rows_count, int columns_count)
{
    int max = 0;
    for (int j = 0; j < columns_count; j++)
        max += a[0][j];
 
    for (int i = 1; i < rows_count; i++)
    {
        int s = 0;
        for (int j = 0; j < columns_count; j++)
            s += a[i][j];
        if (s > max) max = s;
    }
 
    return max;
}
0
v.a.l.i.d
416 / 381 / 10
Регистрация: 21.09.2012
Сообщений: 913
14.01.2013, 12:02 #3
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
#include "stdafx.h"
#include "iostream"
using namespace std;
 
template <typename t>
t Max(t **arr, int rows, int cols)
{
    t maximum;
 
    for (int y=0; y<rows; y++)
    {
        t summTemp = 0;
 
        for (int x=0; x<cols; x++)
            summTemp = summTemp + arr[y][x];
 
        if (y == 0) maximum = summTemp;
        else
            if (summTemp > maximum)
                maximum = summTemp;
    }
 
    return maximum;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    
    int **arr, rows, cols;
 
    cout << "Введите количество строк:    ";  cin >> rows;
    cout << "Введите количество столбцов: ";  cin >> cols;
 
    arr = new int*[rows];
    for (int y=0; y<rows; y++) arr[y] = new int[cols];
 
    for (int y=0; y<rows; y++)
        for (int x=0; x<cols; x++)
            arr[y][x] = y + x;
 
    cout << "Max = " << Max(arr, rows, cols) << endl;
 
    system("pause");
    return 0;
}
0
ekzamenhelp
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 9
14.01.2013, 12:32  [ТС] #4
валид, не работает.сейчас пробую вариант предложенный первым.

Добавлено через 8 минут
спасайтееее!!!!
0
vxg
Модератор
3222 / 2025 / 231
Регистрация: 13.01.2012
Сообщений: 7,852
14.01.2013, 12:34 #5
спасайте что? тоже не работает? может подскажите что не работает? оба варианта вообще то должны работать...
1
ekzamenhelp
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 9
14.01.2013, 12:36  [ТС] #6
во втором варианте после ввода количества строк\столбцов просто завершается программа.вашу функцию никак не могу прикрутить к программе
0
vxg
Модератор
3222 / 2025 / 231
Регистрация: 13.01.2012
Сообщений: 7,852
14.01.2013, 12:39 #7
просто завершается это странно - она должна говорить хоть что нибудь: ошибка может какая-нибудь или еще что то... моя функция - это функция, я не стал писать программу - вы ведь сказали "написать функцию"
0
v.a.l.i.d
416 / 381 / 10
Регистрация: 21.09.2012
Сообщений: 913
14.01.2013, 12:40 #8
У меня все работает. Только добавил печать самой матрицы
0
Миниатюры
Разработать функцию, которая находит сумму в каждой строке матрицы, а среди сумм - максимум  
ekzamenhelp
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 9
14.01.2013, 12:42  [ТС] #9
валид, добавьте, пожалуйста обновленную программу.

Добавлено через 34 секунды
в какой среде запускаете? из под дев_с++ не работает, сейчас постараюсь найти комп с вижуалкой
0
vxg
Модератор
3222 / 2025 / 231
Регистрация: 13.01.2012
Сообщений: 7,852
14.01.2013, 12:43 #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <stdlib.h>
 
//тут наша функция
 
int main(void)
{
    int a[5][5];
    for (int i = 0; i < 5; i++)
        for (int j = 0; j < 5; j++)
            a[i][j] = i + j;
 
    int max = get_max_row_sum(a, 5, 5);
 
    std::cout << max << std::endl;
 
    system("pause");
    return 0;
}
Добавлено через 24 секунды
afx удалите

Добавлено через 10 секунд
...это я про второй пример
0
v.a.l.i.d
416 / 381 / 10
Регистрация: 21.09.2012
Сообщений: 913
14.01.2013, 12:45 #11
Для Visual Studio 2010
Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include "iostream"
#include "iomanip"
using namespace std;
 
template <typename t>
t Max(t **arr, int rows, int cols)
{
    t maximum;
 
    for (int y=0; y<rows; y++)
    {
        t summTemp = 0;
 
        for (int x=0; x<cols; x++)
            summTemp = summTemp + arr[y][x];
 
        if (y == 0) maximum = summTemp;
        else
            if (summTemp > maximum)
                maximum = summTemp;
    }
 
    return maximum;
}
 
 
 
// ------------------------------------------------------------------
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    
    int **arr, rows, cols;
 
    cout << "Введите количество строк:    ";  cin >> rows;
    cout << "Введите количество столбцов: ";  cin >> cols;
 
    arr = new int*[rows];
    for (int y=0; y<rows; y++) arr[y] = new int[cols];
 
    for (int y=0; y<rows; y++)
        for (int x=0; x<cols; x++)
            arr[y][x] = y + x;
 
    for (int y=0; y<rows; y++)
    {
        for (int x=0; x<cols; x++)
            cout << setw(3) << arr[y][x];
        cout << endl;
    }
    cout << endl;
 
    cout << "Max = " << Max(arr, rows, cols) << endl;
 
 
    cout << endl;
    system("pause");
    return 0;
}
0
ekzamenhelp
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 9
14.01.2013, 12:46  [ТС] #12
0
UserAK
73 / 73 / 4
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
14.01.2013, 12:48 #13
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 <limits.h>
 
template <int row, int col>
int MaxSumOfMatrixRow(int (&matrix)[row][col], int *sum_of_row)
{
    int maxSum(INT_MIN);
    int sum(0);
    for(unsigned r = 0; r < row; r++){
        sum_of_row[r] = 0;
        for(unsigned c = 0; c < col; c++){
            sum_of_row[r] += matrix[r][c];
        }
        if(sum_of_row[r] > maxSum){
            maxSum = sum_of_row[r];
        }
    }
    return maxSum;
}
 
int main()
{
    int matrix[5][4] =  {   {1, 2, 3, 4},
                            {1, 2, 5, 4},
                            {1, 2, 3, 4},
                            {1, 8, 3, 4},
                            {1, 2,-3,-4},};
    int sums[5];
    int MaximumSum = MaxSumOfMatrixRow(matrix, sums);
    // проверка массива с суммами строк
    for(unsigned i = 0; i<5; i++) std::cout<<sums[i]<<std::endl;
 
    // проверка максимальной суммы
    std::cout<<MaximumSum<<std::endl;
    system("pause");
    return 0;
}
0
vxg
Модератор
3222 / 2025 / 231
Регистрация: 13.01.2012
Сообщений: 7,852
14.01.2013, 12:52 #14
ах да, пардон, тогда
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <stdlib.h>
 
//тут наша функция
 
int main(void)
{
    int **a;
    a = new int *[5];
    for (int i = 0; i < 5; i++)
        a = new int[5];
 
    for (int i = 0; i < 5; i++)
        for (int j = 0; j < 5; j++)
            a[i][j] = i + j;
 
    int max = get_max_row_sum(a, 5, 5);
 
    std::cout << max << std::endl;
 
    system("pause");
    return 0;
}
0
ekzamenhelp
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 9
14.01.2013, 12:56  [ТС] #15
теперь запускается и сразу закрывается
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2013, 12:56
Привет! Вот еще темы с ответами:

Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы - C++
Задана целочисленная квадратная матрица A(N x N). Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.

Определить максимум среди сумм эллементов диагоналей параллельных главной диагонали матрицы - C++
Дана целочисленная квадратная матрица Определить максимум среди сумм эллементов диагоналей параллельных главной диагонали матрицы. Буду...

Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы - C++
Дана целочисленная квадратная матрица. Определить: 1) произведения элементов в тех строках, которые не содержат отрицательных элементов. ...

Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы - C++
Народ!!! Скиньте кто-нибудь код, завтра сдавать уже!!!


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru