Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Problema con matrices

Estas en el tema de Problema con matrices en el foro de C/C++ en Foros del Web. Buenas a toda la comunidad de foros web, vengo a escribirles sobre un problema que tengo al intentar imprimir una matriz de 3 x 3, ...
  #1 (permalink)  
Antiguo 18/01/2014, 10:16
 
Fecha de Ingreso: junio-2009
Ubicación: House
Mensajes: 38
Antigüedad: 14 años, 10 meses
Puntos: 1
Problema con matrices

Buenas a toda la comunidad de foros web, vengo a escribirles sobre un problema que tengo al intentar imprimir una matriz de 3 x 3, he intentado conseguir el error unas cuantas horas pero por mi inexperiencia no lo he encontrado, la matriz imprimi el elemento de las filas sin errores, pero la columna siempre queda con el elemento 3 ya les dejo el codigo y gracias de antemano:

Cita:
#include <stdio.h>
#include <conio.h>

main()
{
int A[3][3],i,j;

printf("Ingrese el valor de la primera matriz \n");

printf("Ingrese el valor de la segunda matriz\n");

for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
{

printf("A[%d,%d]= ",i,j);
scanf("%d",&A[i][j]);

}

for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
{
printf("[%d,%d ]",A[i][j]);

}
getch();

}
  #2 (permalink)  
Antiguo 18/01/2014, 10:45
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Problema con matrices

No sé si habrá más errores, pero uno que se ve fácilmente es que tienes definidos arrays bidimensionales de 3 elementos [3][3].

Pero los índices van de 0 a 2.
O sea que el primer elemento es [0], el segundo es [1] y el tercero es [2].

Si quieres acceder al primer elemento del array será A[0][0]
El último será A[2][2]
el último elemento de la primera fila será A[0][2]

etc...vamos, que has de revisar los índices de los bucles for
  #3 (permalink)  
Antiguo 18/01/2014, 11:19
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Problema con matrices

Además de lo que dice dehm, no tendrías este problema si indentaras tu código. Te están faltando las llaves ( { y } ).

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4. int main()
  5. {
  6.     int A[3][3],i,j;
  7.  
  8.     printf("Ingrese el valor de la primera matriz \n");
  9.  
  10.     printf("Ingrese el valor de la segunda matriz\n");
  11.    
  12.     for (i=0;i<=3;i++)
  13.     {
  14.         for (j=0;j<=3;j++)
  15.         {
  16.             printf("A[%d,%d]= ",i,j);
  17.             scanf("%d",&A[i][j]);
  18.         }
  19.     }
  20.  
  21.     for (i=0;i<=3;i++)
  22.     {
  23.         for (j=0;j<=3;j++)
  24.         {
  25.             printf("[%d,%d ]\n", A[i][j]);
  26.         }
  27.     }
  28.  
  29.     getch();
  30. }

Espero que te sirva.

  #4 (permalink)  
Antiguo 18/01/2014, 12:03
 
Fecha de Ingreso: junio-2009
Ubicación: House
Mensajes: 38
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Problema con matrices

Agradezco por su pronta repuesta chicos, he hecho los cambios que uds me han aconcejado y sigo obteniendo el mismo resultado ahora la columna en vez de 3, queda en 2, y el la fila aparecen cada uno de los elementos mesclados este fue el codigo que coloque modificado tambien adjuntare una imagen del printf final. :

Cita:
#include <stdio.h>
#include <conio.h>

main()
{
int A[2][2],i,j;

printf("Ingrese el valor de la primera matriz \n");

printf("Ingrese el valor de la segunda matriz\n");

for (i=0;i<=2;i++)
{
for (j=0;j<=2;j++)
{

printf("A[%d,%d]= ",i,j);
scanf("%d",&A[i][j]);
}
}


for (i=0;i<=2;i++)
{
for (j=0;j<=2;j++)
{
printf("[%d,%d]",A[i][j]);


}
}

getch();

}


Cuando el resultado deberia ser: [1,1][2,2][3,3][4,4][5,5][6,6][7,7][8,8][9,9]
  #5 (permalink)  
Antiguo 18/01/2014, 12:26
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Problema con matrices

Hola:

Cuando defines un array, has de poner el nº de elementos que tenga.
Si quiero un array de 3 int, haré:
Código C++:
Ver original
  1. int miarray[3];

Pero, a la hora de recorrerlo, iré desde miarray[0] hasta miarray[2]
Es decir, que los índices serán el 0, el 1 y el 2 (3 en total==al tamaño del array)

En tu código nuevo has definido el array como A[2][2], por lo que sólo serán válidos los índices [0] y [1] (ya que el 2 de la declaración del array indica el total de valores)
Has de mantener A[3][3] para tener un array con 3x3=9 valores en éste caso
  #6 (permalink)  
Antiguo 18/01/2014, 12:32
 
Fecha de Ingreso: junio-2009
Ubicación: House
Mensajes: 38
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Problema con matrices

Saludos dehm, gracias por tu pronta respuesta, ya he comprendido lo que me has dicho solo la array va a tener 2 espacios asi que modifique el error que tenia, pero sigue arrojando el mismo resultado, estoy intentando analizarlo una y otra vez pero me arroja el mismo resultado dejo el codigo:


Cita:
#include <stdio.h>
#include <conio.h>

main()
{
int A[3][3];
int i,j;

printf("Ingrese el valor de la primera matriz \n");

printf("Ingrese el valor de la segunda matriz\n");

for (i=0;i<=2;i++)
{
for (j=0;j<=2;j++)
{

printf("A[%d,%d]= ",i,j);
scanf("%d",&A[i][j]);
}
}


for (i=0;i<=2;i++)
{
for (j=0;j<=2;j++)
{
printf("[%d,%d]",A[i][j]);


}
}

getch();

}
  #7 (permalink)  
Antiguo 18/01/2014, 12:36
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Problema con matrices

Bueno, además viéndolo en profundidad, hay más fallitos, puesto que realmente lo que debe hacer tu programa es:

->define array y demás variables
->bucle para llenar el array de valores
->bucle para mostrar los valores del array
.......................
->eventualmente repetir el ciclo para un segundo array, que parece que es lo que quieres

te corrijo un poco el código para haga la secuencia completa con un array

Código C++:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.     int A[3][3],i,j;
  6.  
  7.     printf("Ingrese el valor de la primera matriz \n");
  8.  
  9.  
  10.  
  11.     for (i=0; i<=2; i++)
  12.         {
  13.             for (j=0; j<=2; j++)
  14.                 {
  15.                     printf("A[%d,%d]= ",i,j);
  16.                     scanf("%d",&A[i][j]);
  17.  
  18.                 }
  19.         }
  20.     /*mostrar*/
  21.     for (i=0; i<=2; i++)
  22.         {
  23.             for (j=0; j<=2; j++)
  24.                 {
  25.                     printf("[%d,%d] = %d \n",i,j, A[i][j]);
  26.                 }
  27.         }
  28.     printf("Ingrese el valor de la segunda matriz\n");
  29.     /*volver a hacer lo mismo*/
  30.     return 0;
  31.  
  32. }

(he quitado el getch() y el conio.h, no sé si getch() necesita de conio.h para funcionar, si ves que no va se lo añades)
Saludos
  #8 (permalink)  
Antiguo 18/01/2014, 12:47
 
Fecha de Ingreso: junio-2009
Ubicación: House
Mensajes: 38
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Problema con matrices

Listo, ya me di cuenta que tuve errores en la salida, gracias dehm por tu ayuda marco como solucionado

Etiquetas: int, matrices
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:27.