Cómo pasar una matriz o arreglo como parámetro a una función

Bueno, casi creo que nunca he hablado de matrices, parámetros o funciones en este blog, pero este post es una petición de Rodrigo que me dijo por email que tenía problemas con su tarea porque no sabe cómo pasar una matriz como parámetro a una función en c++. Es algo sencillo, pero difícil de deducir. Veamos.

Si tu arreglo es de una dimensión…
int matriz[4];
… la forma de declarar la función es la siguiente:
void fx(int m[4]) { ...código... }
Y la forma de llamar la función sería:
fx(matriz);

Si el arreglo es de dos dimensiones…
int matriz[4][3];
… pues es lo mismo:
void fx(int m[4][3]) { ...código... }
Y la forma de llamar la función sería:
fx(matriz);

Si la función retorna una matriz…
int matriz[4];
… se declara normal:
void fx(int m[4]) { return matriz[4]; }
Y la forma de llamar la función sería:
matriz[4] = fx(matriz);

Este programa pide tres números, los almacena en una matriz, le suma 1 a cada elemento y los muestra, usando para cada acción una función. Así que tenemos funciones que reciben matrices y que retornan matrices. Chéquenlo.

#include
using namespace std;

void pedir(int matriz[3], int len)
{
    for(int i=0; i<=len; i++)
    {
        cout << "Numero " << i+1 <> matriz[i];
    }
}

int sumar(int matriz[3], int len)
{
    for(int i=0; i<=len; i++)
        matriz[i]++;
    return matriz[3];
}

void mostrar(int matriz[3], int len)
{
    for(int i=0; i<=len; i++)
        cout << matriz[i] << " ";
}

int main()
{
    int matriz[3]={0}, len = sizeof(matriz)/sizeof(int);
    pedir(matriz, len-1);
    matriz[3] = sumar(matriz, len-1);
    mostrar(matriz, len-1);
    return 0;
}

17 thoughts on “Cómo pasar una matriz o arreglo como parámetro a una función

  1. muchas gracias, mi duda-se me habia olvidado especificar jeje- era como se podia ingresar una matriz variable, me explico que el usuario ingrese la dimension(numero de filas y columnas) luego se cree con esas variable.Ej si el numero de filas los guardo en F, y columnas C.Luego

    int matriz[F][C]; //Y eso ingresarlo en la funcion.

    pero buscando y buscando encontre interesante informacion en donde dice que no se puede hacer por lo q se debe crear una matriz lo suficientemente grande (matriz[100][100])y luego llenarla.

    De todos modos la informacion de este articulo es bastante buena y se aprecia de verdad. muchas gracias por tu disposicion y voluntad,espero aportar a esta pagina con codigo más adelante.

  2. hablando de matrices, hablando entre amigos de los posibles tipos de ejercicios del 2º parcial se nos ocurrio si era posible hacer una funcion q calule el determinante de un matriz en ese momento a mas de uno le entro un escalofrio, por eso pido ayuda o ideas de como puedo hacer ese tipo de prog (creo q si es de 3×3 la matriz hacer sarrows no es jodido pero…)
    disculpen por el lugar donde comento.

  3. Muy bueno ese codigo, pero tengo algo mas, si tengo un archivo de datos, osea un txt de numero y quiero halarlo en un arreglo, oseas, leerlo para sumar dichos numeros, como lo hago?

  4. COMO PUEDO LLAMAR A UN VECTOR QE ESTA EN UN FORM1 Y ENVIAR SUS DATOS A UNA MATRIZ Q ESTA EN UN FORM2 EN C++ ???

  5. c) se tiene dos vectores de cualquier tipo
    a[]={‘A’,’B’,’C’}
    b[]={‘C’,’F’,’D’}

    x[]={2,6,1}
    y{]={12,2,7,8}

    hacer la union de conjuntos un(a,b) => ‘A’,’B’,’C’,’D’,’F’
    hacer la interseccion
    hacer diferencia a-b
    hacer diferencia b-a

    DEV C++

  6. es posible que compartieras mas ejemplos de while y for es que tengo parcial y quisiera empaparme mas en esto por favor gracias.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s