C/C++

Даны два числа: n и m. Создайте двумерный массив размером n×m и заполните его в соответствии с примером.

Даны два натуральных числа n и m, не превышающие 10.
Пример:
Ввод: 5 6
Вывод:
0 5 10 15 20 25
1 6 11 16 21 26
2 7 12 17 22 27
3 8 13 18 23 28
4 9 14 19 24 29
---------------------------------------------------------------------------------------------------------------------------------------
Я написал такой код, всё работает, но проверяющая программа ругается. В конце строк пробелы должны быть. Что не так с кодом?
 #include  
#include
using namespace std;
int main()
{

int m, n;
cin >> n >> m;
vector t(n, vector (m));
for (int i = 0; i < t.size(); ++i) {
int c = i;
for (int j = 0; j < t[i].size(); ++j) {
t[i][j] = c;
c += 5;
}
}

for (int i = 0; i < t.size(); i++) {
for (int j = 0; j < t[i].size(); ++j) {
cout
 #include  
#include
using namespace std;
int main() {
array box{};
size_t n, m;
cin >> n >> m;
const auto k = 5;
for (size_t i = 0; i < n; ++i) {
box[i][0] = i;
for (size_t j = 1; j < m; ++j) {
box[i][j] = box[i][j - 1] + k;
}
}
for (size_t i = 0; i < n; ++i) {
for (size_t j = 0; j < m; ++j) {
cout n >> m;
for (size_t i = 0; i < n; ++i) {
box[i][0] = i;
for (size_t j = 1; j < m; ++j) {
box[i][j] = box[i][j - 1] + n;
}
}
for (size_t i = 0; i < n; ++i) {
for (size_t j = 0; j < m; ++j) {
cout
Лара Козаченко
Лара Козаченко
95 031
Лучший ответ
Валерий Комаров Спасибо за решение, но я по программе, которую прохожу, еще не "умею" пользоваться библиотекой array и эту задачу нужно решить именно через вектор. Чтобы получился вектор состоящий из векторов и из него нужно сделать таблицу
Валерий Комаров Вот что пишут в материале для решения:

Для работы с таблицами в языке C++ используют двумерные массивы. Мы будем их реализовывать через уже знакомый контейнер vector. Создадим таблицу как «вектор векторов»:

vector<vector<int> > t(n, vector<int> (m, 0));
В результате появится таблица t из n строк и m столбцов, заполненная нулями.

Заполним таблицу числами по порядку:

int c = 0;
for (int i = 0; i < n; ++i){
for (int j = 0; j < m; ++j){
t[i][j] = c;
++c;
}
}
Заметим, что можно заполнить таблицу, не используя переменную c, с помощью формулы:
Валерий Комаров продолжение:

t[i][j] = i * m + j;
Выведем полученную таблицу на экран:

for (int i = 0; i < n; ++i){
for (int j = 0; j < m; ++j){
cout << t[i][j] << " ";
}
cout << endl;
}
Валерий Комаров вот код
 #include  
#include
using namespace std;
int main()
{

int m, n;
cin >> n >> m;
vector t(n, vector (m));
for (int i = 0; i < t.size(); ++i) {
t[i][0] = i;
for (int j = 1; j < t[i].size(); ++j) {
t[i][j] = t[i][j - 1] + n;
}
}

for (int i = 0; i < t.size(); i++) {
for (int j = 0; j < t[i].size(); ++j) {
cout
Если в каждом форе написать for (unsigned int
то даже и предупреждений не будет.
По идее должно пройти, если программа конечно не проверяет используется ли вектор или реально двумерный массив

Еще возможно она проверяет ограничение «не превышающие 10» предусмотрели вы его или нет, все же у них не вектор в задаче.
> но проверяющая программа ругается
а есть какие-то сообщения от проверяющей программы, на что конкретно она ругается?
> В конце строк пробелы должны быть
что за идиотское требование? это вас так учат или это прикол какой-то? ни один нормальный линтер не пропустит код с пробелами в концах строк, в первый раз такое вижу
IM
Irfan M
36 952
Валерий Комаров 1) Нет, всё что уточняется это "программа выдаёт неверный ответ
2) Пока пробелы убирать не надо, это типа "легкое" задание и с этим пока заморачиваться не надо