#include
#include
using namespace std;
const int ROWS = 5;
const int COLS = 5;
int arr[ROWS][COLS];// глобальный двумерный массив
// прототипы
void fill_array_rand(int arr[ROWS][COLS], const int ROWS, const int COLS);
int min_in_array(int arr[ROWS][COLS], const int ROWS, const int COLS);
int max_in_array(int arr[ROWS][COLS], const int ROWS, const int COLS);
void main()
{
setlocale(LC_ALL, "ru");
srand(time(NULL));
// заполняем массив
fill_array_rand(arr, ROWS, COLS);
// ...
cout<<endl<<"Минимальное значение: "<<min_in_array(arr, ROWS, COLS)<<endl;
cout<<endl<<"Максимальное значение: "<< max_in_array(arr, ROWS, COLS) << endl;
}
// функция для заполнения массивая рандомными числами
void fill_array_rand(int arr[ROWS][COLS], const int ROWS, const int COLS)
{
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
arr[i][j] = rand() % 30 + 30;
cout << arr[i][j] << " ";
}
cout << endl;
}
}
// ищем минимальное число в массиве
int min_in_array(int arr[ROWS][COLS], const int ROWS, const int COLS)
{
int now_min_value = arr[0][0];
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
if (arr[i][j] < now_min_value)
{
now_min_value = arr[i][j];
}
}
}
return now_min_value;
}
// ищем максимальное число в массиве
int max_in_array(int arr[ROWS][COLS], const int ROWS, const int COLS)
{
int now_max_value = arr[0][0];
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
if (arr[i][j] > now_max_value)
{
now_max_value = arr[i][j];
}
}
}
return now_max_value;
}
Другие языки программирования и технологии
Как можно передать ДВУМЕРНЫЙ массив в функцию в С++, не создавая его, как глобальный. Пример ниже:
все переменные которые идут в функцию должны создаться на стеке, а обычно двумерный массив огромной длины, так вы предлагаете время тратить на создание такого массива и переписывание в нем значений и после обработки функцией заниматься переписыванием еще раз? Прочитайте тему про двумерные массивы и передавайте указатель на этот массив.
Проще использовать структуру или класс.
Это абстракция, и в машинном коде ничего лишнего не будет.
например нужна матрица 4 на 4 (такие матрицы используются например в 3D программах, для трансформаций объекта, анимации и т. д.)
//низкоуровневый способ
float m[4][4];
передача в функцию
void f( float * m )
но это если мы знаем размер.
если не знаем то передаём ещё и размер
void f( float * m, unsigned int size )
....
но лучше делать так.
двумерный массив означает что есть какой-то СПИСОК ОБЪЕКТОВ
та же матрица
[1][0][0][0]
[0][1][0][0]
[0][0][1][0]
[0][0][0][1]
каждая строка - объект, содержащий 4 значения.
struct vec4{
float x,y,z,w;
};
struct matrix4x4{
vec4[4];
};
matrix4x4 m; //вот он двумерный массив
void f( matrix4x4 & m ){
....
}
----------------------
список строки аналогично
struct string{
char buf[ 100 ];
};
struct list{
string strings[ 1000 ]; // список с 1000 строками
};
void f( list & L ) //передали только адрес
Это абстракция, и в машинном коде ничего лишнего не будет.
например нужна матрица 4 на 4 (такие матрицы используются например в 3D программах, для трансформаций объекта, анимации и т. д.)
//низкоуровневый способ
float m[4][4];
передача в функцию
void f( float * m )
но это если мы знаем размер.
если не знаем то передаём ещё и размер
void f( float * m, unsigned int size )
....
но лучше делать так.
двумерный массив означает что есть какой-то СПИСОК ОБЪЕКТОВ
та же матрица
[1][0][0][0]
[0][1][0][0]
[0][0][1][0]
[0][0][0][1]
каждая строка - объект, содержащий 4 значения.
struct vec4{
float x,y,z,w;
};
struct matrix4x4{
vec4[4];
};
matrix4x4 m; //вот он двумерный массив
void f( matrix4x4 & m ){
....
}
----------------------
список строки аналогично
struct string{
char buf[ 100 ];
};
struct list{
string strings[ 1000 ]; // список с 1000 строками
};
void f( list & L ) //передали только адрес
Евгений Малышев
Спасибо!
Надо полагать самый простой и очевидный способ
https://ideone.com/fSK5gy
https://ideone.com/fSK5gy
Похожие вопросы
- Каким образом в c++ можно передать двумерный массив в фунцкию?
- C++: И снова передача двумерных массив в функцию.. . каким макаром это сделать?
- помогите срочно надо Квадратные массивы тема: Двумерные массивы на языке C++
- дан двумерный массив С(3,4).Получите новый массив А путём увеличения всех элементов исходного массива на число С.
- Необходимо упорядочить строки двумерного массива, по возрастанию первого эл-та. СИ.
- .помогите пожалуйста двумерный массив на языке c++
- Что такое Двумерный массив?
- Ассемблер двумерный массив
- Двумерный массив с++ Пожалуйста =(
- Динамические двумерные массивы С++. Помогите разобраться.
Я только-только начал изучать плюсы, еще не дошел до указателей и стека.
Знаю только, что массивы передаются по ссылке, а не по значению, как примитивные типы.
Спасибо за ответ!