Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema año bisiesto en c++

Estas en el tema de Problema año bisiesto en c++ en el foro de C/C++ en Foros del Web. Miren ... tengo este problema... Elabore un programa que determine si un año es o no bisiesto. Codifique el módulo que resuelve el problema con ...
  #1 (permalink)  
Antiguo 03/04/2012, 13:25
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años, 9 meses
Puntos: 0
Problema año bisiesto en c++

Miren ... tengo este problema...
Elabore un programa que determine si un
año es o no bisiesto. Codifique el módulo que resuelve el problema con
el operador “?”.

ya tengo un codigo pero no sale con un numero en especifico que es el 1000 despues todos los demas años reconoce a la perfeccion ... donde 1000 no es año bisiesto pero en el programa me sale que si es un año bisiesto ... alguna idea??

#include<cstdio>

unsigned int leerAnio() {
unsigned int a;
printf("Escriba un año: \n");
scanf("%u",&a);
return a;
}

int bisiesto(unsigned int a) {
int m;
(a%100==0 ? a=a/100:
a%4==0 ? m=1:m=0);
return m;
}

void mostrarRes(unsigned int a, int res) {
printf("El año %u %s",a,(res ? "es bisiesto" : "no es bisiesto"));
}

int main() {
unsigned int a=leerAnio();
mostrarRes(a,bisiesto(a));
return 0;
}
  #2 (permalink)  
Antiguo 03/04/2012, 13:52
Avatar de cristian_qc  
Fecha de Ingreso: abril-2011
Mensajes: 43
Antigüedad: 13 años, 8 meses
Puntos: 8
Respuesta: Problema año bisiesto en c++

Código C++:
Ver original
  1. int bisiesto( unsigned int a ){
  2.     return ( a % 4 == 0 ? 1 : 0 ) && a % 100 != 0 ? 1 : 0;
  3. }

Saludos.
  #3 (permalink)  
Antiguo 03/04/2012, 13:59
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema año bisiesto en c++

Cita:
Iniciado por cristian_qc Ver Mensaje
Código C++:
Ver original
  1. int bisiesto( unsigned int a ){
  2.     return ( a % 4 == 0 ? 1 : 0 ) && a % 100 != 0 ? 1 : 0;
  3. }

Saludos.
Pues con ese codigo me sale que 2000 no es un año bisiesto.... pero el 2000 si es un año bisiesto =S
  #4 (permalink)  
Antiguo 03/04/2012, 14:18
 
Fecha de Ingreso: marzo-2012
Ubicación: Argentina, Buenos Aires
Mensajes: 11
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Problema año bisiesto en c++

Un año es bisiesto, si es divisible entre 4, excepto si es divisible entre 100 pero no entre 400. ( El codigo te generaba que no era año bisiesto el 2000, porque le faltaba la validación si era divisible entre 400)

Código c++:
Ver original
  1. int year;
  2.  
  3. if( (year % 4 == 0)  && (year % 100 != 0) || (year % 400 == 0) &&  (year % 4 == 0))
  4. {
  5.  
  6.       printf("El año es bisiesto");
  7.  
  8. }else printf("El año no es bisiesto");

Última edición por GuillermoADC; 03/04/2012 a las 14:36
  #5 (permalink)  
Antiguo 03/04/2012, 14:40
Avatar de cristian_qc  
Fecha de Ingreso: abril-2011
Mensajes: 43
Antigüedad: 13 años, 8 meses
Puntos: 8
Respuesta: Problema año bisiesto en c++

Exactamente, me faltó la validación por 400:
Código C++:
Ver original
  1. return ( a % 4 == 0 ? 1 : 0 ) && a % 100 != 0 ? 1 : ( a % 400 == 0 ) ? 1 : 0;
  #6 (permalink)  
Antiguo 03/04/2012, 15:33
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema año bisiesto en c++

ehh me has salvado jeje gracias.!!!! =D

Etiquetas: c++, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:29.