Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: morty2 en 6 Octubre 2010, 02:43 am



Título: no encuentro el fallo y se que lo tiene!!!
Publicado por: morty2 en 6 Octubre 2010, 02:43 am
hola a todos
estoy empezando a aprender prgramacion c++ y tengo este pequeño problema,


encontre un ejercicio donde te pedian hacer un programa en el que ingresas tres numeros y te devuelve el numero medio, para que se me entienda.........
si yo ingreso  1    ,  4  ,  7   el programa devuelve el numero    4,
o si yo ingreso    45,    23    ,99   el programa te devuelve       45


mi problema esta en que como soy totalmente inexperto se que tiene un fallo porque en mi code si yo ingreso     2     4       7        no me da resultado alguno!!!!!!
aunque si ingreso         4       2      7     si que me da          4,
o si ingreso     7      2      4          tambien me da          4.

creo que me e explicado no?

alguien sabria decirme en que fallo para poder corregirme y seguir aprendiendo??



aqui mi code:


Código:
#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
    system("color 2");
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@                            CODE BY MORTY2                             @@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    Sleep(2000);
    int a,b,c;   //debo usar int o float??
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("   INGRESA TRES NUMEROS Y EL PROGRAMA TE DIRA EL NUMERO DE VALOR CENTRAL   ")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cout<<("")<<endl;
    cin>>a;
    cin>>b;
    cin>>c;
    cout<<("")<<endl;
    Sleep(200);
                        if((a>=b) && (a<=c))
   
    cout<<("EL NUMERO DE VALOR CENTRAL ES: ")<<a;
                                                       
                        if((b<=a) && (b>=c))
    {
    cout<<("EL NUMERO DE VALOR CENTRAL ES: ")<<b;
    }                                         
                         if((c<=b) && (c>=a))
    {
    cout<<("EL NUMERO DE VALOR CENTRAL ES: ")<<c;
    }       
    Sleep(2000);
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@                            CODE BY MORTY2                             @@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
    cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
Sleep(1000);
system("pause");
return 0;
}


gracias de antemano a todos!!!!!
morty2


Título: Re: no encuentro el fallo y se que lo tiene!!!
Publicado por: Anco en 6 Octubre 2010, 04:43 am
El fallo esta en la logica de esta linea:

Citar
if((b<=a) && (b>=c))

No entiendo porque usas el >= o <=, si como lo estas haciendo al usar numeros iguales no te funcionara, en este caso solo te funciona con numeros distintos. Para la proxima deberias usar bucles.


Título: Re: no encuentro el fallo y se que lo tiene!!!
Publicado por: morty2 en 6 Octubre 2010, 04:57 am
eske no se como solucionarlo xD

acabo de empezar con esto de la programacion y por eso pregunto,

estoy leyendo y leyendo tutos,manuales,info.....
y en uno de ellos planteaba este programa sin ninguna explicacion.

me decidido a hacerlo y hay me quedado, no se como solucionarlo, no se si mi planteamiento esta bien o mal, no se si deberia borrarlo y empezar de cero..............


Título: Re: no encuentro el fallo y se que lo tiene!!!
Publicado por: Leyer en 6 Octubre 2010, 05:02 am
Llamar a system solo le quitaría la portabilidad a tu programa, system("pause"); es mejor sustituirlo por cin.get();

Código
  1. if(a > b && a < c)cout << " Centro : "<<a<<endl;
  2. if(a > c && a < b)cout << " Centro : "<<a<<endl;
  3. if(b > a && b < c)cout << " Centro : "<<b<<endl;
  4. if(b > c && b < a)cout << " Centro : "<<b<<endl;
  5. if(c > b && c < a)cout << " Centro : "<<c<<endl;
  6. if(c > a && c < b)cout << " Centro : "<<c<<endl;

Un saludo.


Título: Re: no encuentro el fallo y se que lo tiene!!!
Publicado por: Shell Root en 6 Octubre 2010, 05:02 am
Tienes que mirar la secuencia y los posibles números ingresados. Es decir,
Código
  1. a    =    1    2    2    3    3    1    => a<b & a>c | a>b & a<c
  2. b    =    2    1    3    2    1    3    => b>a & b<c | b<a & b>c
  3. c    =    3    3    1    1    2    2    => c>a & c<b | c>b & c<a
Código,
Código
  1.    if(((a < b) && (a > c)) || ((a > b) && (a < c))){
  2.        cout<<("EL NUMERO DE VALOR CENTRAL ES: a(")<<a<<")\n";
  3.    }else if(((b > a) && (b < c)) || ((b < a) && (b > c))){
  4.        cout<<("EL NUMERO DE VALOR CENTRAL ES: b(")<<b<<")\n";
  5.    }else if(((c > a) && (c < b)) || ((c > b) && (c < a))){
  6.        cout<<("EL NUMERO DE VALOR CENTRAL ES: c(")<<c<<")\n";
  7.    }


Título: Re: no encuentro el fallo y se que lo tiene!!!
Publicado por: Leyer en 6 Octubre 2010, 05:14 am
Tienes que mirar la secuencia y los posibles números ingresados. Es decir,
Código
  1. a    =    1    2    2    3    3    1    => a<b & a>c | a>b & a<c
  2. b    =    2    1    3    2    1    3    => b>a & b<c | b<a & b>c
  3. c    =    3    3    1    1    2    2    => c>a & c<b | c>b & c<a
Código,
Código
  1.    if(((a > b) && (a > c)) || ((a > b) && (a < c))){
  2.        cout<<("EL NUMERO DE VALOR CENTRAL ES: a(")<<a<<")\n";
  3.    }else if(((b > a) && (b < c)) || ((b < a) && (b > c))){
  4.        cout<<("EL NUMERO DE VALOR CENTRAL ES: b(")<<b<<")\n";
  5.    }else if(((c > a) && (c < b)) || ((c > b) && (c < a))){
  6.        cout<<("EL NUMERO DE VALOR CENTRAL ES: c(")<<c<<")\n";
  7.    }

shell root no es valido si ingreso 4 21 3


Título: Re: no encuentro el fallo y se que lo tiene!!!
Publicado por: Shell Root en 6 Octubre 2010, 05:21 am
Simon, xD no se porque en el código lo puse así, pero en el análisis lo hice bien...   :silbar:
Código
  1. shellroot@alex-laptop:~/Escritorio$ g++ PoC.cpp
  2. shellroot@alex-laptop:~/Escritorio$ ./a.out
  3. EL NUMERO DE VALOR CENTRAL ES: a(4)


Título: Re: no encuentro el fallo y se que lo tiene!!!
Publicado por: morty2 en 6 Octubre 2010, 09:21 am
muchisimas gracias a tosos!

solucionado el problema estudiare mi fallo con la solucion para aprender gracias a vosotros!!!!!!!! :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D