c++, индексы в массиве
Имеется массив(матрица) n*m, проблема заключается в поиске двух индексов, первый нашёл успешно (i), но второй не работает должным образом. Нужно найти два индекса(вывести их), после чего их сложить, чтобы получить сумму. В чём ошибка?
const int n = 3;
const int m = 3;
int maxelement, indexi, indexj;
int arr[n][m];
cout << "Введите элементы массива (7x4): ";
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cin >> arr[i][j];
}
}
cout << "\n";
cout << " Ваша матрица: " << "\n" << "\n";
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cout << arr[i][j] << "\t";
}
cout << endl;
}
cout << "\n";
maxelement = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
indexj = j;
indexi = i;
if (arr[i][j]>maxelement)
{
maxelement = arr[i][j];
}
}
}
cout << "Максимальный элемент = " << maxelement << ", его индексы: " << "i: " << indexi << " j: "<< indexj << endl;
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Да вы ни один не находите... Потому что вместо
indexj = j;
indexi = i;
if (arr[i][j]>maxelement)
{
maxelement = arr[i][j];
}
нужно
if (arr[i][j]>maxelement)
{
indexj = j;
indexi = i;
maxelement = arr[i][j];
}
или вам нужно запомнить индексы именно последнего элемента, а не максимального?
А вообще - "неправильно ты, дядя Федор, бутерброд ешь" - даю просто намек: какие индексы будут, если все элементы матрицы у вас окажутся не больше нуля? Замечу, что это намек сразу на 2 ошибки...