Какое значение возвратит функция, если матрица задана следующим образом?

введите сюда описание изображения

int matr2(int **Y, int n, int m){
int max,i,j,k=0,d;
max = Y[0][0];
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if (Y[j][i]>max) {max = Y[j][i]; k=i;}
d=0;
printf("%d\n",k);
for(i=0;i<n;i++) d+= Y[i][k];
return d; }

мой вариант решения

#include <iostream>
 
using namespace std;
void matr2(int **Y, int n, int m){
 
int max,i,j,k=0,d;
max = Y[0][0];
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if (Y[j][i]>max) {max = Y[j][i]; k=i;}
d=0;
printf("%d\n",k);
for(i=0;i<n;i++) d+= Y[i][k];
std::cout<< d; }
int main()
{
    int Y[6][5]= {4,6,9,4,2,6,6,0,3,9,7,4,9,4,4,7,7,2,7,4,1,2,7,7,1,0,3,1,1,7};
    cout << matr2();
}

после компеляции молчит, а должно возвращать сумму ряда, в котором обнаружен максимальный элемент матрицы как я понял


Ответы (1 шт):

Автор решения: Harry
#include <iostream>

using namespace std;

int matr2(int Y[][5], int rows)
{
    int max = Y[0][0], maxrow = 0, maxsum = 0;
    for(int i = 0; i < rows ; i++)
    {
        int sum = 0;
        for(int j = 0; j < 5; j++)
        {
            sum += Y[i][j];
            if (Y[i][j] > max)  // Так - первая строка с максимальным элементом
            if (Y[i][j] >= max) // Так - последняя строка с максимальным элементом
            {
                max = Y[i][j];
                maxrow = i;
            }
        }
        if (maxrow == i) maxsum = sum;
    }
    return maxsum;
}
int main()
{
    int Y[6][5]= {4,6,9,4,2,6,6,0,3,9,7,4,9,4,4,7,7,2,7,4,1,2,7,7,1,0,3,1,1,7};
    cout << matr2(Y,6);
}
→ Ссылка