El que llama a la función "ve" esto
10 10 10 // Ésto es una matriz
10 99 10
10 10 10
Sin embargo la función sólo conoce ésto
10 10 10 10 99 10 10 10 //Ésto es un array unidimensional
Tienes que hacer algo para que a partir de la fila y la columna, la función pueda obtener el indice equivalente para el array.
Es decir si llamas a la función así:
la función debe transformar ese (1,1) que son las coordenadas del elemento en la matriz a un 4 y entonces hacer
Que en este caso sería el 99.
Si no sabes como rellenar un array quizá este problema te venga grande...
Haz un for de N iteraciones donde en cada una pida, genere (o lo que quieras)... un número y lo vaya asignando a posiciones consecutivas del array. Pero hazlo tras declarar el array y no antes.
10 10 10 // Ésto es una matriz
10 99 10
10 10 10
Sin embargo la función sólo conoce ésto
10 10 10 10 99 10 10 10 //Ésto es un array unidimensional
Tienes que hacer algo para que a partir de la fila y la columna, la función pueda obtener el indice equivalente para el array.
Es decir si llamas a la función así:
Código
pos(array, 1, 1) ;
la función debe transformar ese (1,1) que son las coordenadas del elemento en la matriz a un 4 y entonces hacer
Código
return array[4];
Que en este caso sería el 99.
Si no sabes como rellenar un array quizá este problema te venga grande...
Haz un for de N iteraciones donde en cada una pida, genere (o lo que quieras)... un número y lo vaya asignando a posiciones consecutivas del array. Pero hazlo tras declarar el array y no antes.
Todavía no la saco, me parece que lo estoy pensando mal porque se me está complicando demasiado.
Código
/* Dado un arreglo de m*n enteros, escribir una función pos que tome una fila y una columna, y devuelva el entero correspondiente a esa posición, es decir interpreté el arreglo unidimensional como una matriz. */ #include <stdio.h> /* int pos (int a[], int fila, int columna){ // pos(a,1,1) // 10 11 // 12 13 //array(1,2)=a[3*n+(columna-1)]=a[3*1+1]=a[4] // pos(a,2,2) = a[4] // 10 11 12 13 a[4]; } */ int main (void){ int n,m,l=0; // arrays int i,j; int fila,columna; int z=10; /// N=n*m; int array[n][m]; int array_u[l]; // array unidimensional. for (i=0;i<n; i++){ for (j=0; j<m; j++){ array[i][j]=z++; } } for (i=0; i<n; i++){ for (j=0; j<m; j++){ } } for (i=0; i<n; i++){ for (j=0; j<m; j++){ array_u[l]=array[i][j]; l++; } } //pos(array_u,fila,columna); return 0; }