elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Determinar si dos matrices son iguales
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Determinar si dos matrices son iguales  (Leído 8,323 veces)
estudiante_1

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Determinar si dos matrices son iguales
« en: 2 Enero 2016, 20:43 pm »

Hola, he hecho un programa que me diga si dos matrices son iguales, y no me compila debido a la unica funcion que hay. El error que dice el compilador es unknown type a.
este es el codigo:
Código:
#include<stdio.h>
#include<stdlib.h>
     int iguales(int m[3][3],a[3][3],int i,int j){

     for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            if(m[i][j]==a[i][j]) return 1;
            else return 0;
        }
     }


     }

     int main(void){
      int m[3][3],i,j;
      int a[3][3];

             for(i=0;i<3;i++){
             for(j=0;j<3;j++){
             scanf("%d",&m[i][j]);
             }

             }
             printf("\n\t");

              for(i=0;i<3;i++){
              printf("\n");
             for(j=0;j<3;j++){

              printf("%6d ",m[i][j]);

             }
             }

             printf("\n");
             for(i=0;i<3;i++){
                for(j=0;j<3;j++){
                    scanf("%d",&a[i][j]);
                }
             }
                printf("\n\t");
                for(i=0;i<3;i++){
                        printf("\n");
                    for(j=0;j<3;j++){
                        printf("%6d ",a[i][j]);
                    }
                }
                printf("\n");

                  if(iguales(m,a,i,j)) printf("Son iguales\n");
                  else printf("No son iguales\n");







             system("pause");
             return(0);
             }



En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: Determinar si dos matrices son iguales
« Respuesta #1 en: 2 Enero 2016, 20:48 pm »

ienes que poner int antes del 'a'. Tal como dice el compilador, no se sabe el tipo de 'a'.


En línea

JavierScars

Desconectado Desconectado

Mensajes: 116



Ver Perfil
Re: Determinar si dos matrices son iguales
« Respuesta #2 en: 2 Enero 2016, 21:10 pm »

Exacto, además te recomendaría trabajar más limpio y ordenado.
En línea

Usa lo malo de la vida a tu favor, escala montañas de problemas para deslizarte sobre soluciones, derrumba muros de decepciones para encontrar la libertar de la felicidad,  y quema la leña del fracaso para calentarte con el éxito. Recuerda que sin la oscuridad la luz no brillaría tanto.
estudiante_1

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Determinar si dos matrices son iguales
« Respuesta #3 en: 2 Enero 2016, 21:11 pm »

si, es verdad de todas maneras no me funciona el programa, me dice que son iguales aunque la matrices sean distintas.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.575



Ver Perfil
Re: Determinar si dos matrices son iguales
« Respuesta #4 en: 2 Enero 2016, 21:32 pm »

No te funciona porque a la primera iteración, la primera comparación,  ya retornas de la función. Solo comparas el primer elemento.
return termina la función sí o sí.
Debes rehacer la función.

Recomendación: establece una variable con un valor tal que indica que la función ha tenido éxito en ver que los dos arrays son iguales.
Empieza a realizar la comparación de forma iterativa.
Si encuentras que en algún momento son diferentes cambias el valor de la anterior variable y sales del bucle.
Retorna ek valor.
En línea

estudiante_1

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Determinar si dos matrices son iguales
« Respuesta #5 en: 3 Enero 2016, 19:25 pm »

No te funciona porque a la primera iteración, la primera comparación,  ya retornas de la función. Solo comparas el primer elemento.
return termina la función sí o sí.
Debes rehacer la función.

Recomendación: establece una variable con un valor tal que indica que la función ha tenido éxito en ver que los dos arrays son iguales.
Empieza a realizar la comparación de forma iterativa.
Si encuentras que en algún momento son diferentes cambias el valor de la anterior variable y sales del bucle.
Retorna ek valor.

Y cómo lo harías en código? no entiendo establecer una variable con un valor



creo que te refieres a algo así, aunque todavía sigue sin salir correcto, pues al introducir dos matrices iguales me dice que no lo son:
 
Citar
#include<stdio.h>
#include<stdlib.h>
     int compi(int m[3][3],int a[3][3]){
     int i,j,comparacion;
     for(i=0;i<3;i++){
        for(j=0;j<3;j++){
         if(m[j]==a[j]) comparacion++;
        }
     }
   return(comparacion);

     }
     int soniguales(int m[3][3],int a[3][3],int comparacion){
     compi(m,a);
     if(comparacion==9) return 1;
     else return 0;






     }

     int main(void){
      int m[3][3],i,j;
      int a[3][3];
      int comparacion;

             for(i=0;i<3;i++){
             for(j=0;j<3;j++){
             scanf("%d",&m[j]);
             }

             }
             printf("\n\t");

              for(i=0;i<3;i++){
              printf("\n");
             for(j=0;j<3;j++){

              printf("%6d ",m[j]);

             }
             }

             printf("\n");
             for(i=0;i<3;i++){
                for(j=0;j<3;j++){
                    scanf("%d",&a[j]);
                }
             }
                printf("\n\t");
                for(i=0;i<3;i++){
                        printf("\n");
                    for(j=0;j<3;j++){
                        printf("%6d ",a[j]);
                    }
                }
                printf("\n");
                   compi(m,a);

                  if(soniguales(m,a,comparacion)) printf("Son iguales\n");
                  else printf("No son iguales\n");







             system("pause");
             return(0);
             }
« Última modificación: 3 Enero 2016, 22:34 pm por Eternal Idol » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.575



Ver Perfil
Re: Determinar si dos matrices son iguales
« Respuesta #6 en: 3 Enero 2016, 19:43 pm »

Fallas en las llamadas y retornos de las funciones.
Antes de continuar con este programa vuelve a revisar el tema de las funciones:
Cómo llamarlas
Cómo pasarles patámetros y usarlos en la función
Cómo devolver un valor con la función y usarlo en el código llamante
Paso de valores por referencia a argumentos

Cuándo manejes bien estos aspectos, es media horita, vuelve al programa.
En línea

JavierScars

Desconectado Desconectado

Mensajes: 116



Ver Perfil
Re: Determinar si dos matrices son iguales
« Respuesta #7 en: 3 Enero 2016, 19:56 pm »

Pana te estas enredando más para algo tan censillo...
Primero guiate por el primer código que posteaste y sigue esto.
1) En la declaración de la función iguales declara el tipo del array a es decir ponle int adelante.
2) Crea una variable o algo en la función iguales  que al primer dato que no sea igual entre las dos matrices deje de conpara puesto que así como lo tienes solo debería comparar el primer dato. "Creo, me parece"
3)El if que revisa a la función iguales tienes que darle algo con que compararlo es decir if (igual(matrices) ==1) {imprimir iguales}
4)DIOS SE  NAS ORDENADO no se si es porque soy un poco noob pero me parece que deberías aunque sea comentar las cosas y para que sirven, identar, dejar espacio, saltos de línea, etc. Además usa los prototipos de las funciones y luego escribe las al final deja el main siempre de primero.

Saludos
En línea

Usa lo malo de la vida a tu favor, escala montañas de problemas para deslizarte sobre soluciones, derrumba muros de decepciones para encontrar la libertar de la felicidad,  y quema la leña del fracaso para calentarte con el éxito. Recuerda que sin la oscuridad la luz no brillaría tanto.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Rnd iguales
Programación Visual Basic
monro 3 2,047 Último mensaje 7 Abril 2010, 21:23 pm
por monro
IPs iguales
Dudas Generales
the_lokadio 9 4,711 Último mensaje 24 Junio 2010, 13:25 pm
por the_lokadio
¿determinar multiplos? « 1 2 »
Programación C/C++
Bledniss 17 32,910 Último mensaje 27 Abril 2011, 20:26 pm
por RyogiShiki
numeros iguales
Programación C/C++
Ander123 1 1,572 Último mensaje 25 Agosto 2012, 13:22 pm
por The Swash
Ayuda a determinar avería en hd
Hardware
JW2 9 8,864 Último mensaje 18 Septiembre 2012, 23:35 pm
por simorg
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines