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

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

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

Author24 — интернет-сервис помощи студентам
Разработать функцию, которая для произвольной матрицы находит сумму в каждом рядке матрицы а среди сумм - максимум.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2013, 11:47
Ответы с готовыми решениями:

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

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

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

Определить максимум матрицы среди сумм диоганалей паралельных главной
помогите пожалуйста мне нужно написать программу на си : дана целочисленная квадратная матрица...

40
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
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
425 / 390 / 113
Регистрация: 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
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 9
14.01.2013, 12:32  [ТС] 4
валид, не работает.сейчас пробую вариант предложенный первым.

Добавлено через 8 минут
спасайтееее!!!!
0
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
14.01.2013, 12:34 5
спасайте что? тоже не работает? может подскажите что не работает? оба варианта вообще то должны работать...
1
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 9
14.01.2013, 12:36  [ТС] 6
во втором варианте после ввода количества строк\столбцов просто завершается программа.вашу функцию никак не могу прикрутить к программе
0
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
14.01.2013, 12:39 7
просто завершается это странно - она должна говорить хоть что нибудь: ошибка может какая-нибудь или еще что то... моя функция - это функция, я не стал писать программу - вы ведь сказали "написать функцию"
0
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913
14.01.2013, 12:40 8
У меня все работает. Только добавил печать самой матрицы
Миниатюры
Разработать функцию, которая находит сумму в каждой строке матрицы, а среди сумм - максимум  
0
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 9
14.01.2013, 12:42  [ТС] 9
валид, добавьте, пожалуйста обновленную программу.

Добавлено через 34 секунды
в какой среде запускаете? из под дев_с++ не работает, сейчас постараюсь найти комп с вижуалкой
0
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
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
425 / 390 / 113
Регистрация: 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
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 9
14.01.2013, 12:46  [ТС] 12
0
73 / 73 / 13
Регистрация: 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
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
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
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 9
14.01.2013, 12:56  [ТС] 15
теперь запускается и сразу закрывается
0
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
14.01.2013, 12:57 16
фильм ужасов. попробуйте вместо систем пауза добавить
C++
1
2
int xxx;
std::cin >> xxx;
0
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 9
14.01.2013, 13:01  [ТС] 17
работает, и последняя - просьба раздели эти функции на две отдельные(для вижуалки)
0
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913
14.01.2013, 13:03 18
Цитата Сообщение от ekzamenhelp Посмотреть сообщение
раздели эти функции на две отдельные(для вижуалки)
На какие отдельные? Для разных типов?
0
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 9
14.01.2013, 13:04  [ТС] 19
отдельно для максимума и отдельно для сумм
0
100 / 100 / 47
Регистрация: 19.11.2012
Сообщений: 195
14.01.2013, 13:07 20
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
#include <iostream>
using namespace std;
int func(int * matrix,int n,int m) {
    int * sum;
    int maximum=0;
    sum=new int[m];
    for(int i=0; i<m; i++)
        sum[i]=0;
    for(int j=0; j<m; j++)
        for(int i=0;i<n; i++)
            sum[j]+=matrix[i*n+j];
    maximum=sum[0];
    for(int i=0;i<m;i++)
        if(sum[i]>maximum)
            maximum=sum[i];
    delete [] sum;
    return maximum;
}
int main() {
    int matrix[3][3]=
    {{ 1, 2, 3 },
     { 4, 5, 6 },
     { 7, 8, 9 }};
    setlocale(LC_ALL,"rus");
    cout << "Максимум из сумм по стобцам = " << func(*matrix,3,3);
    getchar();
}
0
14.01.2013, 13:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2013, 13:07
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru