# include <stdio.h>
# include <conio.h>
int main()
{
int a;
int b;
int c;
a = 0;
b = 100;
c = 1;
printf("De un valor a la variable a\n");
scanf("%d",&a);
if(a <= b and a >= c)
{
printf("La variable a esta entre 1 y 100");
getch();
}
if(a >= b and a <= c)
{
printf("La variable a no esta entre 1 y 100");
getch();
}
}
He empezado con if then else, y quise probar esto. Pero por alguna razon, me saltea el segundo if si no se cumple el primero, es decir si a es mayor a 100 y menor a 1, el programa se cierra. Si es menor a 100 y mayor a 1, funciona bien.
Porque???
Un nº mayor que 1 y menor que 100: 10 23 30 40 ...
Un nº menor que 1 y mayor que 100: (busca uno)
PD: cambia el segundo and por un or o por ||
PD2: algo más elegante, quita el segundo if entero y cambialo por else.
Ya lo hice y anda perfecto, gracias
Una duda
Porque habia que usar or ahi???
Y con el else no me andaba, por eso puse if.
EI: juntando mensajes, la proxima vez borro.
Ahora estoy averiguando como hacer para que el programa solo acepte numeros. En wikipedia dice que hay especificadores para eso, y que d es el que sirve para eso. Pero eso no se refiere acaso a "%d"???. Si fuese asi, mi programa solo aceptaria numeros para la variable a, pero al contrario, tambien acepta letras.
Porque???
simplemente tienes que usar OR porque no tiene ningún sentido lo que habias puesto desde un punto de vista lógico, ningún numero puede ser menor que 1 y mayor que 100. O es menor que 1 O es mayor que 100.
Poner "%d" no significa que solo vaya a leer numeros, sino que la variable que se espera para guardar el dato leido tiene que ser un integer.
Y con else si funciona:
# include <stdio.h>
# include <conio.h>
int main()
{
int a;
int b;
int c;
a = 0;
b = 100;
c = 1;
printf("De un valor a la variable a\n");
scanf("%d",&a);
if(a <= b and a >= c)
{
printf("La variable a esta entre 1 y 100");
getch();
}
else
{
printf("La variable a no esta entre 1 y 100");
getch();
}
return 0;
}
que tonto soy, gracias!!!
Cita de: Anastacio en 20 Enero 2012, 22:53 PM
EI: juntando mensajes, la proxima vez borro.
En una ocasión se me fue la olla y publiqué dos posts seguidos en lugar de modificar el anterior. Pero tú llevas unos cuantos ya >.<
Al tanto, Anastacio, al tanto...