Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: estudiante_1 en 4 Enero 2016, 12:40 pm



Título: Decir si dos vectores son iguales en C
Publicado por: estudiante_1 en 4 Enero 2016, 12:40 pm
Hola, me encuentro con el mismo problema que con las matrices, en este caso con vectores. Tengo que compararlos y ver si son iguales.
este es el código:
 
Código:
  #include<stdio.h>
        #include<stdlib.h>

        int soniguales(int v[5],int a[5],int aux){
            int i;
        for(i=0;i<5;i++){
        if(v[i]!=a[i]) {
            aux=1;
        }
        }
        return (aux);
        }




    int main(void){
    int v[5],a[5],i,aux;
    for(i=0;i<5;i++){
    scanf("%d",&v[i]);
    }
    for(i=0;i<5;i++){
    scanf("%d",&a[i]);
    }
    soniguales(v,a,aux);

    if(aux==1) printf("Son distintos\n");
    else printf("Son iguales");
   







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

    }


Título: Re: Decir si dos vectores son iguales en C
Publicado por: user-marcos en 4 Enero 2016, 12:49 pm
No tiene mucho sentido la variable aux, y recuerda que soniguales es un función y por lo tanto te devuelve un valor, y como tu lo tienes no la utilizas como tal, te pongo una posible solución
Código
  1. int soniguales(int v[],int a[]){
  2.   int i;
  3.   for(i=0;i<5;i++)
  4.     if(v[i]!=a[i])
  5.       return 1;
  6.   return 0;
  7. }
  8.  
  9.  
  10.  
  11.  
  12. int main(void){
  13.   int v[5],a[5],i;
  14.   for(i=0;i<5;i++){
  15.     scanf("%d",&v[i]);
  16.   }
  17.   for(i=0;i<5;i++){
  18.     scanf("%d",&a[i]);
  19.   }  
  20.   if(soniguales(v,a)) printf("Son distintos\n");
  21.   else printf("Son iguales");
  22.  
  23.   system("pause");
  24.   return(0);
  25. }
  26.  


Título: Re: Decir si dos vectores son iguales en C
Publicado por: estudiante_1 en 4 Enero 2016, 13:01 pm

Código
  1. int soniguales(int v[],int a[]){
  2.   int i;
  3.   for(i=0;i<5;i++)
  4.     if(v[i]!=a[i])
  5.       return 1;
  6.   return 0;
  7. }
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
Pero así solo comparas la primera iteracción.


Título: Re: Decir si dos vectores son iguales en C
Publicado por: user-marcos en 4 Enero 2016, 13:07 pm
El bucle sólo para cuando haya encontrado un elemento distinto o cumpla la condición que le has puesto i < 5.


Título: Re: Decir si dos vectores son iguales en C
Publicado por: MAFUS en 4 Enero 2016, 13:32 pm
A ver, voy a explicar como hacer una buena interfaz de función.
Una vez pensado un buen nombre, descriptivo de lo que hace, muy importante pensar que datos necesitamos pasarle para que haga su trabajo.
Hay que pasarle solo esos datos. La lista de argumentos no debe servir para crear variables locales, como haces con aux. Esas ya se declararán dentro de la función.
También debemos pensar en si la función nos debe devolver un resultado y qué resultado necesitamos que nos devuelva.
Teniendo claro eso podremos empezar a pensar como debe hacer su trabajo.



Título: Re: Decir si dos vectores son iguales en C
Publicado por: JavierScars en 4 Enero 2016, 15:06 pm
El código que te pasaron esta bien .

Y al tuyo le definiste aux como entero pero no le diste ningún valor y lo pasaste como argumento.
1) No hay necesidad de usar aux.
2) Si lo quieres usar para tu comodidad mejor definelo y dale un valor dentro de la función que lo usa no en main() donde es inutil. Recuerda que la función que hiciste es de tipo entero por lo tanto puedes colocarla a ella en la condición para el if en vez de usar el aux

Saludos