Open ssommerr opened 2 months ago
Hola!. No es necesario que modifiques las matrices, de hecho estaría mal que cuando te dicen que verifiques alguna condición sobre vectores los modifiques. Para verificar lo que te piden hay que hacer muchas cosas, entonces verlo como una sola función no te va a resultar. Para verificar si son amigas tenés que: 1) Ver si la matriz 1 es amiga de la 2, o la matriz 2 es amiga de la 1 2) Para ver si una matriz es amiga de otra, todas sus filas deben estar contenidas en la otra matriz 3) Para que una fila está contenida en otra matriz sus elementos tienen que estar contenidos en alguna de las filas de la otra matriz (en la fila 0, o sinó en la fila 1, o sinó en la fila 2, etc.) 4) Para que un vector esté contenido en otro todos sus elementos tienen que pertenecer al segundo vector
Tenés que ir descomponiendo en problemas más pequeños, te van a quedar varias funciones, pero cada una debería ser sencilla de hacer Cualquier duda avisanos
Agregando a lo de Marcelo, siempre q revises rango, tenes que hacerlo antes de desreferenciar. Porque podrias estar exediendote de los limites antes de revisar si elemento1 < COLS No asi:
while(m1[filas1][elemento1]==m1[filas1][elemento1-1] && elemento1<COLS);
Sino asi:
while(elemento1<COLS && m1[filas1][elemento1]==m1[filas1][elemento1-1] );
Ok genial! No lo había tenido en cuenta eso, tenes razón!! Gracias!
Hola! Cómo están? Quería consultar por el ej 18, ya que no estoy pudiendo encararlo bien; no se como hacer para ir chequeando de a 2 matrices a la vez para ver si una es amiga de la otra o al reves; yo principalmente pensaba hacer el ciclo 2 veces, lo cual no se si es lo más eficiente pero me pareció que me iba a quedar mucho mas legible. Esto hasta que me di cuenta que las variables en parametros era de tipo const por lo que no podia intercambiar valores entre ellas o algo del estilo. Iba a hacer una variable maux y definirlo segun cuantas vueltas de. Y mi idea principal era llamar al programa 2 veces, almacenar no lo que devolviesen y de ahi ver si tenia 2 0s o un 1 o 1 2. No se si se podrá modificar algo o si debo pensarlo todo de 0. M e podrían decir? Gracias!
include
include
include
define COLS 4
int sonAmigas(const int (m1[])[COLS], unsigned int fils1,const int (m2[])[COLS], unsigned int fils2 ) { int filas1=0, filas2=0, elemento1=0, elemento2=0, vuelta=0, nosonamigas, maux[][]; while(vuelta<2 && nosonamigas==0) { while(filas1<fils1)
}