• Martes 12 de Noviembre de 2024, 21:30

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - alejandro222

Páginas: [1]
1
C/C++ / Re:Funciones con matrices
« en: Domingo 14 de Octubre de 2012, 23:38 »
Muchas gracias por la ayuda, funciona perfecto  :smartass:

2
C/C++ / Funciones con matrices
« en: Viernes 12 de Octubre de 2012, 20:52 »
Lo primero, felicitarlos a todos por el foro, que me ha sido de ayuda en varias ocasiones, y agradeceros vuestra atención.
Posteo para pedir ayuda con un código al que no consigo encontrar el fallo; básicamente crea una matriz de dimensión n, y pide al usuario rellenarla. A continuación, se imprime un número de esa matriz, dada una fila y una columna.
Código: [Seleccionar]
# include <stdio.h>

# include <iostream>

using namespace std;

int dim; //una variable para guardar las dimensiones de la matriz

void imprimir(int matriz[][10],int fila,int columna); //la funcion que me da errores

int main(){

cout << "Introduzca la dimensión n de la matriz (cuadrada): "; //pedir el rango
cin >> dim; //guardarlo

int matrizA[dim][dim]; //creo la matriz con la que quiero trabajar


/*Pillar los datos de la matriz*/
cout << "Introduzca los datos, empezando por la primera fila, de izda. a derecha y arriba a debajo, conforme se le van pidiendo: " << endl;

for(int i = 0; i <dim; i++){ //recorrer las filas

    for(int j = 0; j < dim; j ++){ //recorrer las columnas
        cout << "Elemento " <<i +1<< j +1<<" : "; //indicar al usuario que dato está introduciendo
        cin >> matrizA[i][j]; //guardar el dato en la posición correspondiente de la matriz
    }

}

imprimir(matrizA,1,2); //Imprimir la posición 1,2 (por poner algo, podría ser cualquier otra posición que necesitara)
   
    return 0;

}

void imprimir(int matriz[][10],int fila,int columna){ //la función pide una matriz, una fila y una columna
   
cout << matriz[fila][columna];//imprime a consola el elemento correspondiente

}

Al ejecutar el programa, me lanza el siguiente error (si ayuda en algo, mi IDE es codeblocks):
cannot convert ‘int (*)[(((long unsigned int)(((long int)dim) + -0x00000000000000001)) + 1)]’ to ‘int (*)[10]’ for argument ‘1’ to ‘void imprimir(int (*)[10], int, int)’|

En cambio, si en vez de usar una función a parte introduzco el código directamente en la función main, el programa funciona perfectamente (quiero decir, en lugar de la linea imprimir(matrizA,1,2);, poner algo como cout<<matrizA;[1][2].

Muchas gracias por vuestra ayuda, agradeceré cualquier comentario que me ayude a avanzar un poco.

Páginas: [1]