Лабораторная работа по динамичному массиву

299
13 июня 2022, 05:50

Задание:Найти наименьший элемент матрицы и записать в строку, где находится этот элемент, '10'. Размер матрицы вводить с клавиатуры, а элементы разместить в памяти динамически.Не имею понятия как сделать так, чтоб записывалась 10 в строку с наименьшим, а так же если в разных строках одинаковые наименьшие числа, то программа учитывает только первый. Код пока получился таким:

#include<iostream>
#include<ctime>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    srand(time(NULL));
    char exit;
    do
    {
        int** mas, i, j, line, collum;
        do
        {
            cout << "Введите количество рядков:";
            cin >> line;
            cout << "Введите количество столбов:";
            cin >> collum;
        } while (collum <= 0 || line <= 0);
        mas = new int* [line];
        for (i = 0; i < line; i++) mas[i] = new int[collum];
        for (i = 0; i < line; i++)
            for (j = 0; j < collum; j++)
                mas[i][j] = rand() % 10;
        for (i = 0; i < line; i++)
        {
            cout << endl;
            for (j = 0; j < collum; j++)
                cout << mas[i][j] << "\t";
        }
        int n, minLine;
        for (i = 0; i < line; i++)
        {
            n = 100;
            for (j = 0; j < collum; j++)
                if (mas[i][j] < n)
                {
                    n = mas[i][j];
                    minLine = i;
                }
            cout << endl;
        }
        cout << minLine << endl;
        cout << endl;
        delete[]mas;
        cout << "Exit program?[y] or [n]";
        cin >> exit;
    } while (exit != 'y');
    system("pause");
    return 0;
}
Answer 1

Не сильно понятен вопрос, но если правильно понял... Нужно сделать for в fore чтобы пересчитывались все числа, а не только столбец с рандомным числом и строка с рандомным числом.

for (i = 0; i < line; i++)
{
     for (j = 0; j < collum; j++)
    {
          if (mas[i][j] < n)
                {
                    n = mas[i][j];
                }
    }
}
for (i = 0; i < line; i++)
{
     for (j = 0; j < collum; j++)
    {
          if (mas[i][j] ==  n)
                {
                  mas[i][0] = 10;
                }
    }
}

Как я понял, то вот так.

READ ALSO
Вызвано исключение по адресу (msvcp140d.dll)

Вызвано исключение по адресу (msvcp140d.dll)

Программа определяет систему счисления по префиксам если 0x или 0X, то 16 СС, так же с 2 ССКод одинаковый для 16 СС и для 2 СС, но при переходе на метку...

176
Структура данных &quot;Пирамида&quot; C++

Структура данных "Пирамида" C++

Реализую структура данных "Пирамида" и некоторые методы к нейВсе работает, но беда в том, что очень медленно

149
Форматированный ввод бинарного файла

Форматированный ввод бинарного файла

Открываю файл в бинарном режиме, но при этом форматированный ввод с помощью >> компилируетсяКакое поведение ожидать от такого кода с т

155
Читает строки из файла через раз [дубликат]

Читает строки из файла через раз [дубликат]

Проблема такая: есть файл, где данные записаны сплошным столбикомСначала имя, потом возраст

156