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 ошибки...

→ Ссылка