Dev - C++ - Problema matrices c++

   
Vista:

Problema matrices c++

Publicado por Marcos (1 intervención) el 23/12/2017 00:14:34
Hola, estoy empezando a aprender c++ viendo tutos y cursos gratis en internet,en este momento estoy viendo los arreglos bidimensionales y me encontré con 1 problema q no puedo arreglar.

En el curso enseñan 2 formas de hacer las matrices

La 1 es asignando todo desde el principio
1
int A[3][3]={{3,3,3},{3,3,3}{3,3,3}};
Hasta acá todo normal no tuve ningún problema para entenderla ni usarla
Pero en la 2 es donde tengo problemas, en el curso el ej es asi

1
2
int filas=3,columnas=3
int B[filas] [columnas]
Y para llamarlas en los for usa "filas" y "columnas" para los máximos
1
2
3
for(int i=0;i<filas;i++){
 . . . . . .
}
En el ej el código así como lo ponen funciona perfecto.


Pero cuando yo lo quiero hacer el "B" me lo toma como 1 error, no me deja usar las variables "filas" y "columnas" como las cantidades máximas, solo me deja usar números ej int B[3][3].


Como puedo arreglar esto??,
Hasta ahora pude hacer todos los ejercicios sin problema sin crear esas variables y usando solo B y en los for() agregando manualmente los máximos, pero me preocupa q en algún momento necesite poder hacerlo como en el ej y no poder.

PD: No se si influya mucho pero estoy usando Visual Studio 2017 como compilador (en el curso usan otro)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema matrices c++

Publicado por Andrés (27 intervenciones) el 23/12/2017 04:24:55
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema matrices c++

Publicado por Pablo (1 intervención) el 25/12/2017 20:56:31
Buenas Marcos

Lo primero es que ahi te faltaba una coma
1
int A[3][3]={{3,3,3},{3,3,3},{3,3,3}};

También hay un fallo sintáctico aqui, ya que tienen que estar los corchetes juntos.
1
int B[filas][columnas]

No creo que esos sean tus errores, pero te lo aclaro por si acaso.

El error viene en que si tu declaras una matriz de la forma en que lo has declarado quieres decir que la matriz tiene 3 filas y 3 columnas. Aqui viene el problema. Las matrices y los vectores en C/C++ tiene como primera posicion el 0 y el uno por lo que si tu tienes la matriz B, podrás acceder a la posición:
B[0][0], B[0][1], B[0][2], B[1][0], B[1][1], B[1][2], B[2][0], B[2][1], B[2][2].
Por lo que si tu pones

1
B[filas][columnas]
intentarías acceder a la posición B[3][3], posición que no existe en la matriz.

Espero que te sirva de ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar