Arreglos Bidimensionales
Enviado por lorencilla • 26 de Mayo de 2012 • 433 Palabras (2 Páginas) • 654 Visitas
Arreglos bidimensionales
En algunos lenguajes de programación, y es el caso de C, se permiten arreglos de varios subíndices, es decir, arreglos multidimensionales. Generalmente estos arreglos se utilizan para representar tablas de valores con renglones y columnas, donde el primer subíndice representa el renglón y el segundo la columna. Para referenciar cualquier elemento del arreglo se deben indicar los dos subíndices.
Columna0 Columna1 Columna2 Columna 3
Renglón0 a[0][0] a[0][1] a[0][2] a[0][3]
Renglón1 a[1][0] a[1][1] a[1][2] a[1][3]
Renglón2 a[2][0] a[2][1] a[2][2] a[2][3]
Un arreglo de múltiple subíndice puede ser inicializado en su declaración en forma similar a un arreglo de un subíndice. Por ejemplo, un arreglo de doble subíndice b[2][2] puede ser inicializado con
int b[2][2] = {{ 1, 2}, {3, 4}};
Los valores se agrupan por renglones entre llaves. Por lo tanto, 1 y 2 inicializan b[0][0] y b[0][1], 3 y 4 inicializan b[1][0] y b[1][1]. Si para un renglón dado no se proporcionan suficientes inicializadores, los elementos restantes de dicho renglón se inicializarán a 0. Por ejemplo:
int b[2][2] = {{ 1}, {3, 4}};
inicializaría b[0][0] en 1 y b[0][1] en 0, b[1][0] en 3 y b[1][1] en 4.
En la tabla siguiente se muestra la representación gráfica de un arreglo con tres renglones y cuatro columnas.
El recorrido de un arreglo de dos dimensiones para impresión o para cualquier procesamiento deberá hacerse con dos ciclos for anidados, de tal modo que el más exterior recorra todos los renglones, y para cada renglón (el ciclo for interior) recorra todas las columnas del arreglo, de tal forma que cada elemento sea referenciado en los ciclos anidados. A continuación se muestra un ejemplo simple para impresión de un arreglo bidimensional.
/* Inicialización de arreglos bidimensionales */
#include (stdio.h)
#include (conio.h)
void imprimeArreglo(int [][3]);
main( )
{
int arreglo1[2][3] = { {1,2,3}, {4,5,6}},
arreglo2[2][3] = { 1,2,3,4,5},
arreglo3[2][3] = { {1,2}, {4}};
clrscr();
printf("Los valores en arreglo1 por renglón son: \n");
imprimeArreglo(arreglo1);
printf("Los valores en arreglo2 por renglón son: \n");
imprimeArreglo(arreglo2);
printf("Los valores en arreglo3 por renglón son: \n");
imprimeArreglo(arreglo3);
getch ( );
return 0;
}
void imprimeArreglo(int arreglo[][3])
{
int i,j;
for (i=0; i<=1; i++)
{
for (j=0; j<=2; j++)
printf("%5d", arreglo[i][j]);
printf("\n");
...