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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Estación del año en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Estación del año en C  (Leído 2,134 veces)
sora_ori

Desconectado Desconectado

Mensajes: 269



Ver Perfil
Estación del año en C
« en: 16 Abril 2013, 11:29 am »

Buenas,


Estoy haciendo un programa en C que pide el dia el mes y el hemisferio y te dice en que estación del año se encuentra.

El problema me surge en los If, Else de las estaciones que me da error cuando el usuario escribe el hemisferio.



Código
  1.    /* HEMISFERIO */
  2.    printf("\n\nEn que hemisferio estas (1. norte / 2. sur): ");
  3.    scanf("%d", hemis);
  4.  
  5.  
  6.    /* ESTACION DEL AÑO */
  7.  
  8.    if (hemis == 1){
  9.  
  10.                if(mes==1 | mes==2 | (mes==3 & dia<22) | (mes==12 & dia>22)){
  11.                        printf ("Es invierno en el hemisferio Norte");
  12.                }
  13.                else if (mes==5 | mes==4 | (mes==6 & dia<22) | (mes==3 & dia>22)){
  14.                        printf ("Es primavera en el hemisferio Norte");
  15.                }
  16.                else if (mes==7 | mes==8 | (mes==9 & dia<22) | (mes==6 & dia>22)){
  17.                        printf ("Es verano en el hemisferio Norte");
  18.                }
  19.  
  20.                else{
  21.                     printf ("Es otoño en el hemisferio Norte");
  22.                }
  23.  
  24.        }
  25.  
  26.    else{
  27.  
  28.                if(mes==1 | mes==2 | (mes==3 & dia<22) | (mes==12 & dia>22)){
  29.                        printf ("Es verano en el hemisferio Sur");
  30.                }
  31.                else if (mes==5 | mes==4 | (mes==6 & dia<22) | (mes==3 & dia>22)){
  32.                        printf ("s otoño en el hemisferio Sur");
  33.                }
  34.                else if (mes==7 | mes==8 | (mes==9 & dia<22) | (mes==6 & dia>22)){
  35.                        printf ("Es invierno en el hemisferio Sur");
  36.                }
  37.                else{
  38.                        printf ("Es primavera en el hemisferio Sur");
  39.                }
  40.        }


En línea

Daniel_Ruiz

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Estación del año en C
« Respuesta #1 en: 16 Abril 2013, 13:58 pm »

Soy nuevo pero mmm usa switch con case's Espero haberte ayudado :/


En línea

Importante


Bueno Necesito de su ayuda estoy montando una microempresa, Y estoy reuniendo Quemadoras de Dvd - Cd , Soy de Colombia Bogota si quieres apoyarme enviame un Mp Por Favor!.
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Estación del año en C
« Respuesta #2 en: 16 Abril 2013, 14:26 pm »

El problema me surge en los If, Else de las estaciones que me da error cuando el usuario escribe el hemisferio.
En la llamada a scanf:
Código
  1. scanf("%d", hemis);
Te falta el operador "dirección de" (el '&').

Y deberías utilizar los operadores lógicos "&&" y "||" en lugar de los operadores a nivel de bits "&" y "|" ya que los primeros son mas eficientes y garantizan un orden de evaluación.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
sora_ori

Desconectado Desconectado

Mensajes: 269



Ver Perfil
Re: Estación del año en C
« Respuesta #3 en: 16 Abril 2013, 16:40 pm »

Gracias jajaja

Vaya error más tonto  ;D




Un saludo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
comunicacion con estacion meteorologica
Electrónica
tristion 2 2,391 Último mensaje 10 Julio 2006, 04:00 am
por correo900
Estación meteorológica
Foro Libre
@synthesize 6 2,582 Último mensaje 10 Agosto 2012, 12:23 pm
por peib0l
Rusos hackearon una estación de TV británica por un año y nadie se percató
Noticias
wolfbcn 0 1,394 Último mensaje 26 Enero 2017, 21:27 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines