Documente Academic
Documente Profesional
Documente Cultură
Qu es un array bidimensional?
Hemos visto en el captulo anterior lo conveniente que es usar un array cuando tenemos que usar muchas variables del mismo "tipo". Pero cuando avanzamos un poco ms en programacin podemos encontrarnos que los arrays tambin se nos quedan cortos. Podemos verlo utilizando el ejemplo del captulo anterior: "Supongamos que ahora queremos almacenar las temperaturas de toda la semana. Segn lo que aprendimos en el captulo anterior podramos usar un array unidimiensional por cada da de la semana. En cada uno de esos arrays podramos almacenar las temperaturas de cada da." Una posible solucin sera sta:
#include <stdio.h>
int main() {
for( hora=0; hora<24; hora++ ) { printf( "Temperatura de las %i el da 1: ", hora ); scanf( "%i", &temp_dia1[hora] ); printf( "Temperatura de las %i el da 2: ", hora ); scanf( "%i", &temp_dia1[hora] ); printf( "Temperatura de las %i el da 3: ", hora ); scanf( "%i", &temp_dia1[hora] ); ...
printf( "Temperatura de las %i el da 7: ", hora ); scanf( "%i", &temp_dia1[hora] ); media += temp_dia1[hora] + temp_dia2[hora] + ... + temp_dia3[hora]; } media = media / 24 / 7;
Fichero: cap10_ejemplo1.c
Nota: os recuerdo que los puntos suspensivos los he puesto para ahorrar espacio, no pueden usarse en un programa. Creo que est claro que nuevamente queda claro que el programa sera un engorro, sobre todo si queremos almacenar las temperaturas de, por ejemplo, un mes. Para declarar un array bidimensional usaremos el siguiente formato: tipo_de_dato nombre_del_array[ filas ] [ columnas ];
Como se puede apreciar, la declaracin es igual que la de un array unidimensional al que le aadimos una nueva dimensin. El programa anterior quedara ahora as:
for( dia=0 ; dia<DIAS ; dia++ ) { for( hora=0 ; hora<HORAS ; hora++ ) { printf( "Temperatura de las %d el da %d: ", hora, dia ); scanf( "%i", &temp[dia][hora] );
Fichero: cap10_ejemplo2.c
No tenemos por qu limitarnos a arrays bidimensionales, podemos usar cuantas dimensiones queramos. Para un array de tres dimensiones podramos hacer: int temp[MESES][DIAS][HORAS];
[Arriba]
El formato a utilizar sera el siguiente: int variable[ filas ][ { columnas { columnas ... , { columnas }; columnas ] = { de la fila 1 }, de la fila 2 }, de la ltima fila },
Ejercicios
Ejercicio 1: Solucin:
[Arriba]