Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: indict en 23 Enero 2013, 16:25 pm



Título: comparar un elemento con un vector c++
Publicado por: indict en 23 Enero 2013, 16:25 pm
Hola, hago un programa que consiste en comparar un vector con un número, (función booleana). No se que sucede pero me devuelve siempre el valor "true". Si el elemento está en el vector me devuelve "true" y si no está también.  :(

Código:
#include<iostream>
#include<vector>
using namespace std;
bool todosiguales(vector<int>v,int e){
                                    int i;
                                    for(i=0;i<v.size();i++){if(v[i]!=e){return false;}}
                                    return true;}

int main(){
    int n, m, e,i;
    cout<<"introduzca el tamaño del vector"<<endl;
    cin>>n;
    vector<int>v(n);
    for(i=0;i<v.size();i++){
                            cout<<"introduzca los elementos del vector"<<endl;
                            cin>>v[i];
                            v[i]=e;
                            }
    cout<<"introduzca el elemento a comparar"<<endl;
    cin>>m;
   
    if(todosiguales(v,m)){cout<<"es identico el vector respecto el elemento"<<endl;}
    else{cout<<"el vector es distinto respecto el elemento"<<endl;}
    system ("pause");
    return 0;
    }

¡Gracias por la ayuda!


Título: Re: comparar un elemento con un vector c++
Publicado por: leosansan en 23 Enero 2013, 19:24 pm
Hola, hago un programa que consiste en comparar un vector con un número, (función booleana). No se que sucede pero me devuelve siempre el valor "true". Si el elemento está en el vector me devuelve "true" y si no está también.  :(

Citar
......................................................
                            cin>>v;
                           v=e;<==ESTO QUE ES ¡ ¡ ¡
                            }
    cout<<"introduzca el elemento a comparar"<<endl;
    cin>>m;

    ....................................................................


Y poco más:
Código
  1. #include<iostream>
  2. #include<vector>
  3. #include<cstdlib>
  4. #include<clocale>
  5. using namespace std;
  6. bool todosiguales(vector<int>v,int n,int e){
  7.  for(int i=0;i<n;i++){
  8.    if(v[i]==e)
  9.    return  true;
  10.    }
  11.    return false;
  12. }
  13.  
  14. int main(){
  15.    int n, m, e,i;
  16.    setlocale(LC_ALL, "Spanish");
  17.    cout<<"introduzca el tamaño del vector: ";
  18.    cin>>n;
  19.    vector<int>v(n);
  20.    for(i=0;i<n;i++){
  21.       cout<<"Introduzca el elemento "<<i+1<<" del vector: ";
  22.       cin>>v[i];
  23.    }
  24.    cout<<"introduzca el elemento a comparar: ";
  25.    cin>>m;
  26.  
  27.    if(todosiguales(v,n,m)){cout<<"es identico el vector respecto el elemento"<<endl;}
  28.    else{cout<<"el vector es distinto respecto el elemento"<<endl;}
  29.    system ("pause");
  30.    return 0;
  31.    }
  32.  


Título: Re: comparar un elemento con un vector c++
Publicado por: indict en 24 Enero 2013, 11:11 am
muchas gracias por aclararme el fallo  :D

y si ahora quisiera que el programa me mostrará cierto si el valor a comparar es igual a todos los elementos del vector y falso si es distinto ¿qué matiz haría falta modificar?

un saludo


Título: Re: comparar un elemento con un vector c++
Publicado por: leosansan en 24 Enero 2013, 16:03 pm
                      ...........................

y si ahora quisiera que el programa me mostrará cierto si el valor a comparar es igual a todos los elementos del vector y falso si es distinto ¿qué matiz haría falta modificar?

Código
  1. bool todosiguales(vector<int>v,int n,int e){
  2.  for(int i=0;i<n;i++){
  3.    if(v[i]==e)
  4.     return  true;
  5.    else
  6.     return false;
  7.  }
  8. }
Saluditos!.


Título: Re: comparar un elemento con un vector c++
Publicado por: indict en 24 Enero 2013, 21:48 pm
aa claro toda la razon jeje.

Te debo un bucle infinito de gracias ;)