Autor
|
Tema: Otro problema en un programa, no entiendo porque. (Leído 3,014 veces)
|
Anastacio
Desconectado
Mensajes: 111
|
# 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???
|
|
|
En línea
|
You, stop to close my post, you were novice too!!!!!!!!!!!!
|
|
|
El_Java
|
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.
|
|
|
En línea
|
|
|
|
Anastacio
Desconectado
Mensajes: 111
|
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???
|
|
« Última modificación: 20 Enero 2012, 23:38 pm por Eternal Idol »
|
En línea
|
You, stop to close my post, you were novice too!!!!!!!!!!!!
|
|
|
El_Java
|
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; }
|
|
|
En línea
|
|
|
|
Anastacio
Desconectado
Mensajes: 111
|
que tonto soy, gracias!!!
|
|
|
En línea
|
You, stop to close my post, you were novice too!!!!!!!!!!!!
|
|
|
Xandrete
Desconectado
Mensajes: 210
|
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...
|
|
« Última modificación: 21 Enero 2012, 02:41 am por Xandrete »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Error con c$ no entiendo porque!!
Programación Visual Basic
|
Xrage87
|
3
|
1,924
|
29 Noviembre 2008, 14:22 pm
por gulabyte
|
|
|
problema con otro programa :P
.NET (C#, VB.NET, ASP)
|
<sylar>
|
5
|
2,948
|
23 Febrero 2009, 02:18 am
por <sylar>
|
|
|
Tengo un problema en un programa simple, no entiendo cual es.
« 1 2 »
Programación C/C++
|
Anastacio
|
12
|
6,788
|
20 Enero 2012, 22:15 pm
por Anastacio
|
|
|
Quien me ayuda con mi programa,me tira un error y no entiendo porque
Java
|
Ila26
|
2
|
2,125
|
4 Diciembre 2013, 22:01 pm
por Zoik
|
|
|
No entiendo el porqué...
Java
|
Droigor
|
2
|
1,924
|
13 Marzo 2014, 20:42 pm
por Droigor
|
|