Есть простейший алгоритм на c++, который заполняет и выводит двухмерный динамический массив числами от 1 до n*m, но не работает с некоторыми входными данными. проверял с значениями 12 34, 12 4, 5 8, 5, 9 - не работает, просто ничего не выводит. Пытался повторно ввести 5, 9, заработало, но с ошибкой:
Помогите найти ошибку
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int** matr = new int* [n];
for (int i = 0; i < m; i++)
{
matr[i] = new int[m];
}
int k = 1;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
matr[i][j] = k;
k++;
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cout << matr[i][j]<< " ";
}
cout << endl;
}
}
int** matr = new int* [n];
Если уж вы выделили указатели для n
строк
for (int i = 0; i < m; i++)
то почему выделяете память для m
из них? :)
{
matr[i] = new int[m];
}
Так что не работает не алгоритм...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как в конструкторе класса инициализировать поле класса, являющееся объектом класса и созданное на стеке? Следующий код вызывает ошибку
Реализовал алгоритм Флойда, но задался вопросом,как сделать помимо вывода матрицы кратчайших путей, ещё и вывод матрицы расстояний, который...
Решил таки посмотреть, какие изменения были введены в 20-ом стандарде и одно из первых изменений поставило меня в тупик: модулиЯ долго пытался...