matrices

Iniciado por aral90, 9 Diciembre 2011, 18:22 PM

0 Miembros y 1 Visitante están viendo este tema.

aral90

Hola foreros, soy nuevo aqui, y en el tema de la programacion C también, estoy con el tema de matrices, y queria preguntaros como se colocan los datos de la matriz porque no me queda muy claro si es primero filas y despues columnas ya que me viene de esta manera:

int matriz[2] [3]= { {1,2,3}, {4,5} } lo primero nose ni que quiere decir ya que si se esta refiriendo a una matriz 2*3 deberia tener 6 numeros y no 5? como se que numeros pertenecen a la fila 1 cual a la 2 y cual a la columna 1 2, y 3 suponiendo que este en lo cierto y la dimension de la matriz sea 2 filas 3 columnas

gracias un saludo

rir3760

Por partes.

Cuando se declara un array se puede indicar el valor inicial de sus elementos mediante una lista de valores, estos se colocan entre llaves y separados por comas. Entre el nombre del array y la lista se debe colocar un '=' que en este caso es un separador (no confundir con el operador '=' usado en expresiones). Por ejemplo:
int numero[] = {1, 2, 3};
En este caso es el compilador quien calcula el numero de elementos del array en base al numero de valores en la lista (obvio, son tres).

Si se indica el numero de elementos y esto no coincide con el numero de valores en la lista:
int numero[5] = {1, 2, 3};
Hay dos escenarios: si el numero de valores es menor los elementos restantes (numero[3] y numero[4] en este caso) toman el valor 0 (o 0.0 o NULL, dependiendo del tipo). En otras palabras la ultima declaración es equivalente a:
int numero[5] = {1, 2, 3, 0, 0};

Si el numero de valores es mayor entonces se genera "comportamiento no definido" (es un error).

----

Si se trata de un array donde sus elementos son a su vez arrays aplica lo mismo: se indica el valor de cada elemento mediante una lista donde cada uno es una lista.

En tu caso:
int matriz[2][3] = {
   {1, 2, 3}, /* <== Valores de matriz[0] */
   {4, 5}     /* <== Valores de matriz[1] */
};

El array "matriz" consiste a su vez de dos arrays (matriz[0] y matriz[1]) cada uno de tres elementos de tipo int. El primero tiene sus tres elementos inicializados, el segundo todos menos uno (ese toma el valor cero).

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

aral90