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

Определить номер строки матрицы С (N, N), сумма элементов которого наибольшая - C++

Восстановить пароль Регистрация
 
Rusl@n_2014
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 7
08.02.2014, 15:02     Определить номер строки матрицы С (N, N), сумма элементов которого наибольшая #1
Массив должен передаваться в функцию как параметр.

Ранее я уже делал практически такое задание, только просто вводил массив и искал максимальную строчку.
Подскажите как сделать массив что передавался в функцию как параметр. Заранее благодарен за помощь!

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
# include <stdio.h>
# include <conio.h>
# define  N  3  
#include <iomanip>  
int main ( )
{
    setlocale(LC_ALL,"Russian");
    int m [N] [N+1];                
    int max;           
    int i, j;        
    printf ("Введите матрицу %i x %i  \n", N, N);
    for ( i = 0; i < N; i++)
    {
        printf ("Элементы  %i -й строки",  i+1);
        for  ( j = 0; j < N; j++)
     scanf ("%i", &m [i] [j] );
    }
     for ( i = 0; i < N; i++)
    {
           m [i] [N] = 0;
           for  ( j = 0; j < N; j++)
           m [i] [N] += m [i] [j];
    }
max = 0;
for ( i = 0; i < N; i++)
      if ( m[i] [N] > m [max] [N] )
       max = i;
printf (" \n  В %i - й строке сумма элементов ",   max + 1);
printf (" максимальна и равна %i\n", m [max] [N] );
getch ( ) ;
   }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2014, 15:02     Определить номер строки матрицы С (N, N), сумма элементов которого наибольшая
Посмотрите здесь:

C++ Дано двумерный массив целых чисел. Найти номер строки, в которой сумма отрицательных нечетных элементов наибольшая
C++ Наибольшая сумма элементов матрицы
C++ Определить номер столбца квадратной матрицы, сумма элементов которой максимальна
Найти строки матрицы, где есть эл-т для которого сумма предшествующих равна сумме следующих за ним элементов C++
C++ Определить номер строки квадратной матрицы , сумма элементов которой минимальна
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
08.02.2014, 20:08     Определить номер строки матрицы С (N, N), сумма элементов которого наибольшая #2
Rusl@n_2014, думаю лучше отправлять каждую строку матрицы:

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 <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
 
int sum_func(int** mas, int H, int W)
{
    int result = 0;
    
    for(int i = 0; i < W; i++)
    {
        result += mas[H][i];
    }
    
    return result;
}
 
int main()
{
    srand(time(0));
    int H, W, sum = 0;
    cout << "Matrix M[H][W]\n";
    cout << "Enter H: "; cin >> H;
    cout << "Enter W: "; cin >> W;
    cout << endl;
    int** M = new int*[H];
    for(int i = 0; i < H; i++)
        M[i] = new int[W];
    
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            M[i][j] = 100 - (rand() % 200 + 1);
            cout << setw(4) << M[i][j];
            if(!i)
                sum += M[i][j]; //Сумма первой строки
        }                       //чтобы было с чем сравнивать
        cout << "\n\n";
    }
    
    for(int i = 0; i < H; i++)
    {
        int temp = sum_func(M, i, W); //Отправляем каждую строку
        if(temp > sum)
            sum = temp;
    }
    
    cout << "Max row is: " << sum << endl;
    
    for(int i = 0; i < H; i++)
    {
        delete [] M[i];
    }
    
    delete [] M;
    
    system("pause");
    return 0;    
}
Nik_2014
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 3
08.02.2014, 20:44     Определить номер строки матрицы С (N, N), сумма элементов которого наибольшая #3
Спасибо большое! Еще бы был благодарен если выводило не только сумма максимальной строчки, ай определял номер строки макс. сумы.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
08.02.2014, 21:10     Определить номер строки матрицы С (N, N), сумма элементов которого наибольшая #4
Nik_2014

Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
 
int sum_func(int** mas, int H, int W)
{
    int result = 0;
    
    for(int i = 0; i < W; i++)
    {
        result += mas[H][i];
    }
    
    return result;
}
 
int main()
{
    srand(time(0));
    int H, W, sum = 0, row = 1;
    cout << "Matrix M[H][W]\n";
    cout << "Enter H: "; cin >> H;
    cout << "Enter W: "; cin >> W;
    cout << endl;
    int** M = new int*[H];
    for(int i = 0; i < H; i++)
        M[i] = new int[W];
    
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            M[i][j] = 100 - (rand() % 200 + 1);
            cout << setw(4) << M[i][j];
            if(!i)
                sum += M[i][j]; //ÑóììГ* ïåðâîé ñòðîêè
        }                       //÷òîáû áûëî Г± Г·ГҐГ¬ Г±Г°Г*ГўГ*ГЁГўГ*ГІГј
        cout << "\n\n";
    }
    
    for(int i = 0; i < H; i++)
    {
        int temp = sum_func(M, i, W); //ГЋГІГЇГ°Г*âëÿåì ГЄГ*æäóþ ñòðîêó
        if(temp > sum)
        {
            sum = temp;
            row = i + 1;
        }
    }
    
    cout << "Row #" << row << endl << 
            "Sum in row: " << sum << "\n\n";
    
    for(int i = 0; i < H; i++)
    {
        delete [] M[i];
    }
    
    delete [] M;
    
    system("pause");
    return 0;    
}
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
09.02.2014, 00:51     Определить номер строки матрицы С (N, N), сумма элементов которого наибольшая #5
ну это так..вдруг кому пригодится
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
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <numeric>
#include <random>
#include <vector>
 
int rowElementsSum(std::vector <int> matrixRow);
 
int main()
{
    std::default_random_engine generator;
    std::uniform_int_distribution <> distribution(1, 25);
 
    size_t matrixSize;
    std::cout << "Matrix size: ";
    std::cin >> matrixSize;
 
    std::vector <std::vector <int>> matrix(matrixSize, std::vector <int> (matrixSize));
    std::cout << "Matrix: " << std::endl;
    for (auto &currentRow : matrix) {
        for (auto &currentElement : currentRow) {
            std::cout << std::setw(5) << (currentElement = distribution(generator));
        }
        std::cout << std::endl;
    }
 
    size_t currentRowNumber = 0, resultRowNumber = 0;
    int maximalSum = rowElementsSum(matrix.at(currentRowNumber));
    for (auto currentRow : matrix) {
        int currentSum = rowElementsSum(currentRow);
        if (currentSum > maximalSum) {
            resultRowNumber = currentRowNumber;
            maximalSum = currentSum;
        }
        currentRowNumber++;
    }
    std::cout << "Maximal sum: " << maximalSum << " in row #" << (resultRowNumber + 1) << std::endl;
 
    std::system("pause");
    return 0;
}
 
int rowElementsSum(std::vector <int> matrixRow)
{
    return std::accumulate(matrixRow.begin(), matrixRow.end(), 0);
}
Yandex
Объявления
09.02.2014, 00:51     Определить номер строки матрицы С (N, N), сумма элементов которого наибольшая
Ответ Создать тему
Опции темы

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