В интернет искал ответ на свой вопрос, но не один из способов не работал.
Можете исправить и объяснить почему у меня так не работает?
Ошибка:
main.cpp:3:58: ошибка: use of parameter outside function body before «]» token void print_array(int wight, int height, int vmatrix[wight][height]) ^ main.cpp:3:66: ошибка: use of parameter outside function body before «]» token void print_array(int wight, int height, int vmatrix[wight][height])
Код:
#include <iostream>
void print_array(int wight, int height, int matrix[wight][height])
{
std::cout << "";
}
int main()
{
setlocale(LC_ALL, "Russian");
int wight, height;
std::cout << "Введите размер матрицы: ";
std::cin >> wight >> height;
/* Проверка */
if (wight < 1 || height < 1)
{
std::cout << "Ошибка. Матрица такой не может быть" << '\n';
return 1;
}
int matrix[wight][height];
std::cout << "Введите данные для этой матрицы" << std::endl;
for (int index_1 = 0; index_1 < wight; index_1++)
{
for (int index_2 = 0; index_2 < height; index_2++)
{
std::cin >> matrix[index_1][index_2];
}
}
std::cout << "Матрица получилась: " << '\n';
print_array(wight, height, matrix);
return 0;
}
Версия компилятора: g++ (GCC) 8.2.1 20181127
Если не хотите vector<vector<int>>
, можно выделять матрицу динамически. Только вот обычно матрицы записываются построчно, а не постолбцово, как у вас. Матрица 5x6 - это пять строк по 6 элементов.
Вот решение с динамическим выделением матрицы:
void print_array(int width, int height, int ** matrix)
{
for (int index_1 = 0; index_1 < height; index_1++)
{
for (int index_2 = 0; index_2 < width; index_2++)
{
std::cout << matrix[index_1][index_2] << " ";
}
std::cout << "\n";
}
}
int main()
{
int width, height;
std::cout << "Введите размер матрицы: ";
std::cin >> height >> width;
/* Проверка */
if (width < 1 || height < 1)
{
std::cout << "Ошибка. Матрица такой не может быть" << '\n';
return 1;
}
int ** matrix = new int*[height];
for(int i = 0; i < height; ++ i)
matrix[i] = new int[width];
std::cout << "Введите данные для этой матрицы" << std::endl;
for (int index_1 = 0; index_1 < height; index_1++)
{
for (int index_2 = 0; index_2 < width; index_2++)
{
std::cin >> matrix[index_1][index_2];
}
}
std::cout << "Матрица получилась: " << '\n';
print_array(width, height, matrix);
for(int i = 0; i < height; ++ i)
delete[] matrix[i];
delete[] matrix;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня есть одна консоль и надо сделать так чтоб мой код создал отдельные процессы и когда его родителя закроют, то дети продолжали работать
Как воспользоваться конструктором копирования родительского класса в конструкторе копирования дочернего?
С клавиатуры вводится строка символов, представляющая собой предложение со знаками препинания (точка, запятая, восклицательный знак)Вывести...