Top.Mail.Ru
Ответы

Просьба помочь решить задачу по программированию на языке C++.

Можете помочь решить задачу по программированию на языке C++:

Дана прямоугольная матрица размерности MxN. Сформировать одномерный массив, в который занести только последние отрицательные элементы каждой строки матрицы. Если таких элементов нет, то вывести соответствующее сообщение.
Программу необходимо разработать на языке программирования С++ в среде разработки MS
Visual Studio, как проект консольного приложения.
Реализованный алгоритм предполагает
Данные будут вводиться с клавиатуры (если в условии задания не указано иное). При
этом предполагается, что будут введены корректные данные
Не предполагает при вводе с клавиатуры проверки данных на корректность (если,
например, вместо числа введена буква или набор символов, то это проверять не
требуется)
Вывод результата будет производиться на экран монитора
Вывод на экран поясняющих сообщений при вводе начальных данных и полученного
результата

И если вы можете это решить, я буду рад, чтобы код был не столь сложным на уровне колледжа. Пожалуйста помогите!!!

По дате
По рейтингу
Аватар пользователя
Новичок
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
 #include <iostream> 
 
int main() 
{ 
    // 1. Получаем размеры матрицы 
 
    size_t M, N, i, j; 
     
    std::cout << "M: "; 
    std::cin >> M; 
 
    std::cout << "N: "; 
    std::cin >> N; 
 
    // 2. Выделяем память для матрицы 
 
    int **matrix = new int*[M]; 
 
    for (i = 0; i < M; i++) 
        matrix[i] = new int[N]; 
 
    // 3. Заполняем матрицу 
 
    std::cout << "Enter matrix:\n"; 
 
    for (i = 0; i < M; i++) 
    { 
        for (j = 0; j < N; j++) 
            std::cin >> matrix[i][j]; 
    } 
 
    // 4. Создаем массив для последних отриц. 
    //    элементов строк матрицы и заполняем 
    //    его 
 
    int *array = new int[M]; 
 
    for (i = 0; i < M; i++) 
    { 
        int last = 0; 
 
        for (j = 0; j < N; j++) 
        { 
            if (matrix[i][j] < 0) 
                last = matrix[i][j]; 
        } 
 
        if (!last) 
        { 
            std::cout << "row " << i; 
            std::cout << ": not found\n"; 
        } 
 
        array[i] = last; 
    } 
 
    // 5. Выводим значения массива 
 
    std::cout << "Array: "; 
 
    for (i = 0; i < M; i++) 
        std::cout << array[i] << " "; 
     
    std::cout << "\n"; 
 
    // 6. Очищаем память 
 
    for (i = 0; i < M; i++) 
        delete[] matrix[i]; 
 
    delete[] matrix; 
    delete[] array; 
 
    return 0; 
}

// M: 4 
// N: 4 
// Enter matrix: 
// -1 0 -3 1 
// 9 9 0 1 
// -2 1 1 -1 
// 0 -7 2 2 
// row 1: not found 
// Array: -3 0 -1 -7