comparar un elemento con un vector c++

Iniciado por indict, 23 Enero 2013, 16:25 PM

0 Miembros y 1 Visitante están viendo este tema.

indict

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.  :(

#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!

leosansan

#1
Cita de: 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.  :(

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

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


Y poco más:
Código (cpp) [Seleccionar]
#include<iostream>
#include<vector>
#include<cstdlib>
#include<clocale>
using namespace std;
bool todosiguales(vector<int>v,int n,int e){
 for(int i=0;i<n;i++){
   if(v[i]==e)
   return  true;
   }
   return false;
}

int main(){
   int n, m, e,i;
   setlocale(LC_ALL, "Spanish");
   cout<<"introduzca el tamaño del vector: ";
   cin>>n;
   vector<int>v(n);
   for(i=0;i<n;i++){
      cout<<"Introduzca el elemento "<<i+1<<" del vector: ";
      cin>>v[i];
   }
   cout<<"introduzca el elemento a comparar: ";
   cin>>m;

   if(todosiguales(v,n,m)){cout<<"es identico el vector respecto el elemento"<<endl;}
   else{cout<<"el vector es distinto respecto el elemento"<<endl;}
   system ("pause");
   return 0;
   }

indict

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

leosansan

Cita de: indict en 24 Enero 2013, 11:11 AM
                      ...........................

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 (cpp) [Seleccionar]
bool todosiguales(vector<int>v,int n,int e){
  for(int i=0;i<n;i++){
    if(v[i]==e)
     return  true;
    else
     return false;
  }
}

Saluditos!.

indict

aa claro toda la razon jeje.

Te debo un bucle infinito de gracias ;)