Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2020, 18:25   #1
apollon33
Пользователь
 
Регистрация: 18.09.2018
Сообщений: 14
По умолчанию Найти максимальный элементы в строке матрицы

Hello.
Очень нужна помощь. Задача состоит в том, что нужно найти максимальный элемент в указанной строке матрицы.
Всё прекрасно получается и работает, но дело в том, что нужно сделать ИМЕННО по этому шаблону.
Динамический массив необходимо задавать только так и никак иначе.
Не могу разобраться, как верно написать тут цикл вычисления и вывода максимального элемента указанной строки.
Спасибо заранее.
p.s Матрицу заполняю уже сотый раз с клавиатуры, можно ли сюда randoмное заполнение?
Код:
#include<iostream> //подключение системных средств для
using namespace std; //возможности использовать потоки ввода-вывода
#include<iomanip> //для форматированного вывода матрицы
#include <windows.h> //прототип функций русификации
int main(void) //имя функции main()
{
    SetConsoleCP(1251); //вызов функций русификации
    SetConsoleOutputCP(1251);
    int str, stlb, nstlb;
    cout << "Введите количество строк и столбцов в матрице: ";
    cin >> str >> stlb; //задаем количество строк и столбцов в матрице
    int* matr = new int[str * stlb]; //объявляем матрицу динамически
    int N; //переменная под количество
    int i, j, max;
    int* p = matr; //адрес первого элемента в матрице
    //заполнения матрицы числами с клавиатуры
    cout << "Введите матрицу\n";
    for (i = 0; i < str; i++) //перебор элементов матрицы построчно
        for (j = 0; j < stlb; j++)
            cin >> *(p + i * stlb + j); //или p[i*stlb+j]
            //вывод матрицы
    cout << "\nИсходная матрица:\n";
    for (i = 0; i < str; i++) //перебор элементов матрицы построчно
    {
        for (j = 0; j < stlb; j++)
            cout << setw(8) << *(p + i * stlb + j); //или p[i*stlb+j]
        cout << endl; //завершаем вывод строки матрицы
    }
    //вычисления количества положительных элементов произвольного
    //столбца матрицы
    cout << "Введите номер анализируемой строки: ";
    cin >> nstlb; //задаем номер анализируемого строки
    i = nstlb-1; //определяем индекс строки
    max = matr[0];
    for (j = 0; j < stlb; j++) 
		if (max < matr[i])
		{
			N = matr[i];
			matr[i] = max;
			max = N;
		}
    cout << "Максимальный элемент " << max << endl;
    system("pause");
    delete[]matr;
    return 0;
}

Последний раз редактировалось apollon33; 10.11.2020 в 18:27.
apollon33 вне форума Ответить с цитированием
Старый 10.11.2020, 21:22   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,311
По умолчанию

Не очень то и разбираюсь, но что смущает, например тут:
Код:
i = nstlb-1; //определяем индекс строки
    max = matr[0];
    for (j = 0; j < stlb; j++) 
		if (max < matr[i])
		{
			N = matr[i];
			matr[i] = max;
			max = N;
		}
Перед циклом инициализировали i, но в цикле никак эту переменную не меняем.
Счётчик цикла (j) своё отрабатывает, но он не используется в теле цикла.
Т.е. max < matr[i] - stlb раз сравнивается и если это false, то до конца цикла, а если это true, то до конца цикла выполняется тело, в котором max получает значение mart[i].
Но ведь i не меняется!
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти максимальные элементы в каждой строке матрицы Reatar Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 27.05.2017 22:09
(с++)Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами первым и последним элементам строки соответственно Ивангелион Помощь студентам 4 23.12.2016 18:25
Найти наименьшие элементы в каждой строке матрицы и номер максимального из них fort-_-minor Общие вопросы C/C++ 3 22.05.2013 15:44
В каждой строке матрицы А(n*n) найти наибольший и наименьший элементы матрицы и поменять их местами saha1994 Паскаль, Turbo Pascal, PascalABC.NET 2 15.05.2012 20:38
Обработка матриц.В каждой строке матрицы найти первый минимальный и первый максимальный элементы и поменя ride013 Помощь студентам 4 20.04.2011 13:14