C/Visual C - Problema con Igualdad de Matrices

 
Vista:

Problema con Igualdad de Matrices

Publicado por Joel Quirós (2 intervenciones) el 01/03/2002 02:28:58

Amigos de la Web del Programador:

Les escribo este mensaje porque tengo un problema con un programa que estoy trabajando como trabajo final, el trabajo se trata de leer dos matrices por el usuario, sumarlas, restarlas, hacer sus transpuestas a cada una y por último comprobar si la primera tabla inicial es igual o no a la segunda tabla inicial, hice los pasos correspondientes para realizar este programa, pero lo que ocurre que cuando arranco el programa y pongo matrices iguales al final me dice que estas matrices no son iguales, he visto varias formas y todavía no le veo cual es el problema, les pido si alguien me puede aclarar el error que estoy cometiendo en la sección de si son o no son iguales.

Aqui les dejo el programa, Les agradezco de antemano si me pueden resolver este problema que tengo.

Gracias,
Joel Quirós. (Panamá)

Aqui esta el programa:

#include<stdio.h>

main()

{
int A[3][3], B[3][3], C[3][3], D[3][3], T1[3][3], T2[3][3];
int fila, columna,vw;

textcolor(12);
textbackground(1);
clrscr();

/*Lectura de la tabla A*/
printf("introducir los valores de A:");
for(fila=1;fila<=3;fila++){
for(columna=1;columna<=3;columna++){
printf("A[%i][%i] = ",fila,columna);
scanf("%i", &A[fila][columna]);
}
}
/*Lectura de la tabla B*%2
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

RE:Problema con Igualdad de Matrices

Publicado por Josep (29 intervenciones) el 02/03/2002 10:51:47
Creo que el problema se encuentra en los intervalos de los bucles for.

Los índices de las matrices en C/C++/VC++ comienzan por el 0 (en lugar del 1 como en Pascal, Modula2, ...) y en tu código (y en consecuencia, tu algoritmo) se vee que usas el intervalo [1..3][1..3].

El código debería ser ...
int iRow, iCol;
for (Fila=0; iFila < 3; iFila++ )
for (iCol=0; iCol < 3; iCol ++)
scanf("%i",&A[iFila][iCol]);

En tu codigo te dejas de inicializar la posición [0,0] y además accedes a una posición más de la matriz A[3,3] (esta posición está fuera). Seguramente al comparar matrices usas la posición [0,0] y cómo que tiene valores aleatorios (depende del compilador) la comparación da "diferente".

Espero que te haya ayudado en tu duda.
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