elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 22:34  


Tema destacado: Suscripción al boletín mensual de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  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 401 veces)
Anastacio

Desconectado Desconectado

Mensajes: 100



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

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: 132



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

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: 100



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

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 por Eternal Idol » En línea

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

Desconectado Desconectado

Mensajes: 132



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

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
# 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 Desconectado

Mensajes: 100



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

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

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

Desconectado Desconectado

Mensajes: 195



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


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 por Xandrete » En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines