Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: indict en 12 Diciembre 2012, 01:29 am



Título: duda sobre funcion booleana c++
Publicado por: indict en 12 Diciembre 2012, 01:29 am
Es un programa que dice que se indique si hay al menos un elemento negativo al vector, el programa que he echo pongo lo que ponga me sale que si hay valor negativo, si cambio el true por el false me imprime que no hay ningún valor negativo, no sé donde está el fallo :(

Código:
#include<iostream>
#include<vector>
using namespace std;
 
 bool parell(vector<int>v){
  int i;
  for(i=0;i<v.size();i++){
 if(v[i]%2==0){return false;}}
    return true;}
 
 
 
int main(){
   int i,n,e;
    cout<<"mida";
    cin>>n;
    vector<int>v(n);
    for(i=0;i+1<n;i++){
                     cout<<"lelement"<<i<<"..";
                     cin>>e;
                     v[i]=e;}
    cout<<"lultim element del vector es 0"<<endl;
    v.push_back(0);
   
    if (parell(v)){cout<<"conte almenys un nombre parell";}
    else {cout<<"no conte cap nombre parell";}
   
   
   
    system("pause");
    return 0;}


Título: Re: duda sobre funcion booleana c++
Publicado por: rir3760 en 12 Diciembre 2012, 01:50 am
Es un programa que dice que se indique si hay al menos un elemento negativo al vector [...] no sé donde está el fallo :(
El error en tu caso es lógico: ese programa lo único que hace es verificar si existe por lo menos un numero par. Por cierto en la funcion "parell" los valores de retorno estan al reves.

Un saludo


Título: Re: duda sobre funcion booleana c++
Publicado por: indict en 12 Diciembre 2012, 02:09 am
pero yo mismo me pongo un ejemplo que no haya en el vector ningún número par, y me imprime que si. ¿?


Título: Re: duda sobre funcion booleana c++
Publicado por: naderST en 12 Diciembre 2012, 02:24 am
Como te dijo rir3760 los retornos están invertidos, es decir, al encontrar al menos un número par va a retornar false


Título: Re: duda sobre funcion booleana c++
Publicado por: indict en 12 Diciembre 2012, 02:36 am
ya lo cambié, pero sigue sin funcionar


Título: Re: duda sobre funcion booleana c++
Publicado por: naderST en 12 Diciembre 2012, 02:48 am
Debería funcionar, valida que el cambio que hayas hecho sea correcto. Lo que debes hacer es cambiar el return false por true y el true por false