Какое значение возвратит функция, если матрица задана следующим образом?
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);
}
