Problema con variables

Iniciado por Programador91, 1 Abril 2012, 22:02 PM

0 Miembros y 4 Visitantes están viendo este tema.

Programador91

Buenas a tod@s:

Tengo que introducir una variable y hacerlo con el if y el else if. Y el valor mínimo que me tendría que aceptar me lo denega diciendo que está por debajo del valor mínimo establecido.

Por ejemplo:
cin>>a;
if (4.7<=a && a<=5.8)
{
cout<<"Este valor es correcto"<<endl;
}
else if (4.7>a)
{
cout<<"Este valor esta por debajo del minimo aceptado"<<endl;
}
else if (5.8<a)
{
cout<<"Este valor esta por encima del maximo aceptado"<<endl;
}

Bueno pues el caso es que si pongo 4.7 en la variable a me sale "Este valor esta por debajo del minimo aceptado" y con eso me pasa en dos sitios y en cambio el resto del programa que está plegado de estas variables y escritas así me funcionan perfectamente, en cambio, no sé porque estos dos no me funcionan y están escritos identicamente que elresto.

Por qué? Como lo puedo solucionar? No sé como hacerlo ya porque lo he probado de todas formas posibles (que se me hayan ocurrido)

Muchas gracias de antemano^^


Valkyr

¿Has declarado la variable "a" con tipo float o double?

avesudra

Cita de: Valkyr en  1 Abril 2012, 22:18 PM
¿Has declarado la variable "a" con tipo float o double?
Yo lo he probado y tampoco consigo que salga ,es raro y si la he declarado como float
Regístrate en

Programador91

Buenas a tod@s:

Todas las variables las he declarado como float, y el resto de variables me van bien. Solo me fallan dos.

He declarado todas las variables que se deben introducir numeros como float, y ya digo, a lo mejor hay 60 y 58 me funcionan. Solo me fallan estas dos.

Sagrini


if (a<4.7 || a>5.8)
{
if (a<4.7) printf ("Valor menor de lo permitido\n");
if (a>5.8) printf ("Valor mayor de lo permitido\n");
}
else printf ("Valor correcto\n");

Programador91

Buenas a tod@s:

Un amigo del mundillo me recomendó sustituir el nombre de la variable en lugar de "a" ponerle "b" por ejemplo. Pero no me funciona.

Voy a probar el codigo que has facilitado Sagrini, a ver que tal y os digo algo.

Muchas gracias. Y es que me jode mucho. Tengo todo el programa completado y solo me fallan estas dos variables, y lo tengo que tener listo para mediados de abril. Y me jodería mucho no poderlo entregar por dichos fallos.

Programador91

#6
Cita de: Sagrini en  2 Abril 2012, 00:51 AM

if (a<4.7 || a>5.8)
{
if (a<4.7) printf ("Valor menor de lo permitido\n");
if (a>5.8) printf ("Valor mayor de lo permitido\n");
}
else printf ("Valor correcto\n");


Buenas a tod@s:


No me funciona. Me da todos los valores introducidos como correctos, aunque no lo sean U.U Como lo arreglo???

Valkyr

Acabo de probar el código que posteaste en la primera entrada declarando la variable "a" como double y el código funciona correctamente. Cuando pongo un valor entre 4.7 y 5.8 me dice que es un valor correcto. Cuando lo pongo más bajo que 4.7, por ejemplo, 4.6 me dice que es un valor por debajo del mínimo y de la misma forma con 5.8 con el mensaje correspondiente.

La prueba la he realizado en Ubuntu con el compilador que ofrece G++. Así que no entiendo porque a ti no te funciona, ¿podrías poner una captura de pantalla de como ejecutas y escribes el valor?

BlackZeroX

#8


    double a = 5.1;

    if (a < 4.7) {
        printf ("Valor menor de lo permitido\n");
    } else if (a > 5.8) {
        printf ("Valor mayor de lo permitido\n");
    } else {
        printf ("Valor correcto\n");
    }



Dulces Lunas!¡.
The Dark Shadow is my passion.

Programador91

Cita de: Valkyr en  2 Abril 2012, 13:48 PM
Acabo de probar el código que posteaste en la primera entrada declarando la variable "a" como double y el código funciona correctamente. Cuando pongo un valor entre 4.7 y 5.8 me dice que es un valor correcto. Cuando lo pongo más bajo que 4.7, por ejemplo, 4.6 me dice que es un valor por debajo del mínimo y de la misma forma con 5.8 con el mensaje correspondiente.

La prueba la he realizado en Ubuntu con el compilador que ofrece G++. Así que no entiendo porque a ti no te funciona, ¿podrías poner una captura de pantalla de como ejecutas y escribes el valor?

Buenas a tod@s:

Si me da rabia, porque tengo el programa que todo el rato estoy jugando con variables en diferentes case, y en todos me va bien, és más, dentro de un mismo case tengo varias variables y en todos me funciona excepto en dos. Y en un mismo case tengo dos y uno me va bien y el otro no. Y en todos están escritos de idéntica forma. Por eso no entiendo porque no me funciona U.U

Ahora te hago una captura de pantalla a ver lo que puede estar mal. Pero ya te digo, a mi el resto de programa, que es identico a esto me funciona al igual que te ha funcionado a ti. No se porque no funciona en dos casos unicamente.

Gracias por todo de antemano