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

 

 


Tema destacado: Introducción a Git (Primera Parte)


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

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Decir si dos vectores son iguales en C
« 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);

    }


En línea

user-marcos

Desconectado Desconectado

Mensajes: 159


Ver Perfil
Re: Decir si dos vectores son iguales en C
« Respuesta #1 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.  


« Última modificación: 4 Enero 2016, 12:54 pm por user-marcos » En línea

estudiante_1

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Decir si dos vectores son iguales en C
« Respuesta #2 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.
En línea

user-marcos

Desconectado Desconectado

Mensajes: 159


Ver Perfil
Re: Decir si dos vectores son iguales en C
« Respuesta #3 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.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Decir si dos vectores son iguales en C
« Respuesta #4 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.

En línea

JavierScars

Desconectado Desconectado

Mensajes: 116



Ver Perfil
Re: Decir si dos vectores son iguales en C
« Respuesta #5 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
« Última modificación: 4 Enero 2016, 15:09 pm por JavierScars » 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,512 Último mensaje 7 Abril 2010, 21:23 pm
por monro
IPs iguales
Dudas Generales
the_lokadio 9 5,405 Último mensaje 24 Junio 2010, 13:25 pm
por the_lokadio
C++ Mas iteradores, con vectores de vectores ¡ juerga !
Programación C/C++
Orubatosu 1 2,357 Último mensaje 4 Diciembre 2014, 17:18 pm
por Eternal Idol
Decir si dos vectores son iguales en C
Programación C/C++
estudiante_1 4 7,462 Último mensaje 29 Diciembre 2015, 10:36 am
por estudiante_1
ayuda por favor tiene que correr solo si los vectores son iguales
Programación C/C++
mariano19 0 1,060 Último mensaje 7 Noviembre 2018, 20:54 pm
por mariano19
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines