Título: [C] Arreglos de m*n enteros Publicado por: GGZ en 1 Octubre 2015, 23:35 pm 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.
¿Cómo hago esto? Ni siquiera se me ocurre como empezar, ¿un arreglo de m*n enteros? ¿a qué se refiere con eso? int a[m][n]; ? Y cómo es eso que tome unafila y una columna, realmente estoy perdido. Saludos! Título: Re: [C] Arreglos de m*n enteros Publicado por: 0xFer en 1 Octubre 2015, 23:43 pm Citar int a[m][n]; ? Creo que siUn arreglo de m*n enteros es int arreglo[m*n] o int arreglo[m][n] el primero es un arreglo unidimensional el segundo una matriz. Título: Re: [C] Arreglos de m*n enteros Publicado por: GGZ en 1 Octubre 2015, 23:48 pm Bueno, pero cómo hago para pasarle una fila y una columna, además a qué se refiere con interpreté el arreglo unidimensional como una matriz.
O sea yo le paso una fila y una columna y el me debería devolver una matriz de eso, no realmente no lo entiendo. Título: Re: [C] Arreglos de m*n enteros Publicado por: A.I. en 1 Octubre 2015, 23:54 pm Tienes que crear un array unidimensional de m*n posiciones.
Código
Pero tienes que hacer que para el que llama a la función lo vea como una matriz de n filas y m columnas. Es decir a la función le pasas las coordenadas de matriz (fila, columna) y te debe devolver ese elemento. Código
Básicamente es hacer un poco de aritmética a la hora de seleccionar la posición del array unidimensional partiendo de coordenadas bidimensionales. Título: Re: [C] Arreglos de m*n enteros Publicado por: GGZ en 2 Octubre 2015, 00:08 am Código
Sigo sin entenderlo del todo... Título: Re: [C] Arreglos de m*n enteros Publicado por: A.I. en 2 Octubre 2015, 00:25 am 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í: Código
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
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. Título: Re: [C] Arreglos de m*n enteros Publicado por: 0xFer en 2 Octubre 2015, 00:26 am Las matrices ya las conoces no?
int matriz[m][n] esa es una matriz con m*n elementos. Si quisiera saber el elemento en la segunda fila y tercera columna el código sería asi: matriz[1][2] Ahora tienes que hacer que un arreglo unidimensional se comporte de esa manera. Un arreglo unidimesional de m*n es así int unidim[m*n] Ahora si quieres acceder a la segunda fila y tercera columna sería así unidim[(n*1) + 2 ] El resultado sería lo mismo que en la matriz, pero lo hicimos con un arreglo unidimensional Ahora como ya te dijeron, tienes que hacer una función que haga eso, lo que tienes está bien, pero tiene que ser con un arreglo unidimensional no con una matriz. Título: Re: [C] Arreglos de m*n enteros Publicado por: GGZ en 2 Octubre 2015, 16:23 pm 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í: Código
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
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
Título: Re: [C] Arreglos de m*n enteros Publicado por: ivancea96 en 2 Octubre 2015, 16:43 pm Código l = 0. Array de 0 elementos. Título: Re: [C] Arreglos de m*n enteros Publicado por: GGZ en 2 Octubre 2015, 16:49 pm Perdón debería definirlo array_u[n*m] de todos modos ahí no es donde está el error.
Estaba mal definido estamos de acuerdo, pero el problema acá es el enunciado que no termino de entenderlo. Título: Re: [C] Arreglos de m*n enteros Publicado por: A.I. en 2 Octubre 2015, 17:26 pm Lo que te pide el enunciado es ésto
Código
Pero te pongo un poco más de código que creo que te ayudará a comprenderlo mejor Código
Si no entiendes alguna parte pregunta ;-) Título: Re: [C] Arreglos de m*n enteros Publicado por: GGZ en 2 Octubre 2015, 18:06 pm Código
Creo que mas o menos voy entendiendo, lo voy a seguir pensando por mi cuenta, no creo que lo que hice esté bien. Algo así? |