Найти в каждом нечетном столбце матрицы элемент с максимальным по модулю значением и позицию этого элемента [закрыт]

141
26 июня 2019, 13:50

Нужно найти в каждом нечетном столбце матрицы элемент с максимальным по модулю значением и позицию этого элемента. Матрица сделана,а вот сам алгоритм булеберду выводит. Как нужно поправить,чтобы все нормально работало?

#include <iostream>

using namespace std;
int main() {
    int m, n, i, j, max;
    cin >> m >> n;
    int mass[n][m];
    srand(time(NULL));
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            mass[i][j] = rand() % 100;
            //cout << mass[i][j] << "\t";
        }
        //cout << "\n";
    }
    for (j = 0; j < m; j++) {
        if (j % 2 != 0)
            max = mass[0][j];
        for (i = 1; i < n; i++)
            if (mass[i][j] > max)
                max = mass[i][j];
        cout << max;
    }
    cout << "\n";
}
Answer 1

В общем-то, у меня не ответ - ответ вам дали; так, тянет на комментарий, но в него невозможно воткнуть отформатированный исходник.

Вот смотрите - стоит просто отформатировать его (что делает практически любой нормальный редактор) - и вы получите, например:

#include <iostream>
using namespace std;
int main()
{
    int m, n, i, j,max;
    cin >> m >> n;
    int mass[n][m];
    srand(time(NULL));
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
        {
            mass[i][j] = rand() % 100;
            //cout << mass[i][j] << "\t";
        }
        //cout << "\n";
    }
    for (j = 0; j < m; j++)
    {
        if (j%2!=0)
            max = mass [0][j];
        for (i=1; i<n; i++)
            if (mass[i][j] > max)
                max = mass [i][j];
        cout << max;
    }
    cout << "\n";
}

И мгновенно, пройти одним беглым взглядом - и вы натыкаетесь на не тот уровень вложенности, где вам указал @HolyBlackCat.

Программы пишутся не для компиляторов, а для людей. Неаккуратное форматирование, отсутствие комментариев и т.п. стилевые нарушения - это грабли, на которых вы танцуете.

И еще - раз уж это C++, то учтите, что в нем вот такое

    cin >> m >> n;
    int mass[n][m];

не работает. Не поддерживает язык С++ такие фокусы. То, что GCC такое пропустит, говорит только о том, что это - расширение GCC :)

READ ALSO
Выход за границы массива в программе

Выход за границы массива в программе

ЗадачаДано 3 числа : a, b, c и одномерный массив

124
QProcess и ssh получить вывод

QProcess и ssh получить вывод

Можно ли через QProcess получить вывод как в консоли? Запустить процесс типа ("ssh", param) и получить с него ответ на запрос

152
Поломка ввода/вывода в коде с указателями [закрыт]

Поломка ввода/вывода в коде с указателями [закрыт]

Дана задача:ввести 3 вещественные переменные, на них навести указатели, с их помощью в 1 и 3 поменять значения, 2 увеличить в 3 разаМой код:

113
Ошибка CLion (Cmake, SFML)

Ошибка CLion (Cmake, SFML)

Ошибка: CMake Error at cmake_modules/FindSFMLcmake:355 (message): Could NOT find SFML (missing: SFML_AUDIO_LIBRARY SFML_NETWORK_LIBRARY SFML_GRAPHICS_LIBRARY SFML_WINDOW_LIBRARY SFML_SYSTEM_LIBRARY) Call Stack (most recent call first):...

106