elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Otro problema en un programa, no entiendo porque.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Otro problema en un programa, no entiendo porque.  (Leído 2,982 veces)
Anastacio

Desconectado Desconectado

Mensajes: 111



Ver Perfil
Otro problema en un programa, no entiendo porque.
« en: 20 Enero 2012, 22:14 pm »

Código:

# 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

Desconectado Desconectado

Mensajes: 144



Ver Perfil WWW
Re: Otro problema en un programa, no entiendo porque.
« Respuesta #1 en: 20 Enero 2012, 22:46 pm »

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 Desconectado

Mensajes: 111



Ver Perfil
Re: Otro problema en un programa, no entiendo porque.
« Respuesta #2 en: 20 Enero 2012, 22:53 pm »

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

Desconectado Desconectado

Mensajes: 144



Ver Perfil WWW
Re: Otro problema en un programa, no entiendo porque.
« Respuesta #3 en: 20 Enero 2012, 23:56 pm »

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:
Código
  1. # include <stdio.h>
  2. # include <conio.h>
  3.  
  4.  
  5. int main()
  6.  
  7. {
  8.    int a;
  9.    int b;
  10.    int c;
  11.    a = 0;
  12.    b = 100;
  13.    c = 1;
  14.  
  15.    printf("De un valor a la variable a\n");
  16.    scanf("%d",&a);
  17.  
  18.    if(a <= b  and a >= c)
  19.     {  
  20.       printf("La variable a esta entre 1 y 100");
  21.       getch();
  22.     }  
  23.  
  24.     else    
  25.     {    
  26.       printf("La variable a no esta entre 1 y 100");
  27.       getch();
  28.     }  
  29.  
  30.    return 0;
  31. }          
En línea

Anastacio

Desconectado Desconectado

Mensajes: 111



Ver Perfil
Re: Otro problema en un programa, no entiendo porque.
« Respuesta #4 en: 21 Enero 2012, 01:56 am »

que tonto soy, gracias!!!
En línea

You, stop to close my post, you were novice too!!!!!!!!!!!!
Xandrete

Desconectado Desconectado

Mensajes: 210



Ver Perfil
Re: Otro problema en un programa, no entiendo porque.
« Respuesta #5 en: 21 Enero 2012, 02:38 am »


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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error con c$ no entiendo porque!!
Programación Visual Basic
Xrage87 3 1,909 Último mensaje 29 Noviembre 2008, 14:22 pm
por gulabyte
problema con otro programa :P
.NET (C#, VB.NET, ASP)
<sylar> 5 2,934 Último mensaje 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,684 Último mensaje 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,111 Último mensaje 4 Diciembre 2013, 22:01 pm
por Zoik
No entiendo el porqué...
Java
Droigor 2 1,909 Último mensaje 13 Marzo 2014, 20:42 pm
por Droigor
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines