Как передать двухмерный массив в функцию как параметр? пытался сделать ссылку, но выдает ошибку. Код программы ниже.
#include <iostream>
#include <windows.h>
using namespace std;
void minmax (int *a);
int main (){
int a [5][5] = {{5, 2, 5, 3, 7},
{-6,-1, -5, -7, -8},
{2, -6, -7, 4, 10},
{5, -1, -7, -5, 4},
{7, -4, -1, -4, 8}};
for(int i=0; i<5; i++){
for(int j=0; j<5; j++){
cout<<a[i][j]<<"\t";
}
cout<<endl;
}
minmax(*a);
system ("pause");
return 0;
}
void minmax (int *a){
/*/Минимум по строке и максимум среди них/*/
int minim, min[5];
for(int i=0; i<5; i++){
minim=a[i][0];
for(int j=0; j<5; j++){
if (minim>a[i][j]){minim=a[i][j];}
}
min[i]=minim;
}
cout<<endl<<"minimum po stroke: ";
minim=min[0];
for(int i=0; i<5; i++){
cout<<min[i]<<"\t";
if(minim<min[i]){minim=min[i];}
}
cout<<endl<<"Alpha = "<<minim<<endl;
}
Если вы хотите передавать именно как двумерный массив - то надо указать как минимум вторую размерность, типа:
void f(int a[][5]);
Ну, или ясно указать обе размерности.
Но почему бы вам не воспользоваться возможностями C++ и не использовать что-то типа vector
или array
?
Если передаёте двумерный массив как простой указатель, то при вызове функции Вы должны ей подсунуть именно адрес на ячейку: не minmax(*a); а minmax(&a[0][0]);
Внутри функции Вы уже не можете использовать 2 индекса, т.к. передали только указатель на число (одномерный массив). Вместо этого Вам нужно использовать одномерный индекс: a[j + n*i], где n - это количество столбцов в двумерном массиве. Так можно делать, т.к. статические массивы хранятся одним куском и складываются в памяти строками (да, и не нужно использовать "магические" числа в тексте программы (например, у Вас верхний передел для циклов) - это создает очень много проблем при попытках изменить программу. Лучше использовать для этого один раз заданные переменные.
Но вообще, лучше вообще не использовать статические двумерные массивы. Лучше перейти к динамическим массивам. Либо, если программа на С++, то можно использовать контейнеры STL (тот же vector).
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я долго всматривался в эту картинку и пытался понять, что же такое мультисписок, но до сих пор не понимаю, как это реализовать
Задача по структурам поля № авиарейса время полета время прилета направление марка самолета расстояние вывести данные об авиарейсе с максимальной...
Можно ли как-то глобально перегрузить cout <<? Причем сама перегрузка должна зависить от содержимого параметров коммандной строкиЧто порекомендуете?