2
« 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.
# 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.