Comprobar si un año es bisiesto

Programa C++ que lee por teclado un año y comprueba si es bisiesto. Un año es bisiesto si cumple lo siguiente: es divisible por 4 y no lo es por 100 ó si es divisible por 400.
Esta condición en C++ la escribiremos así:
if(a%4==0 and a%100!=0 or a%400==0)
Para saber si un número es divisible por otro se utiliza el operador % que obtiene el resto de la división entre dos enteros.
Por ejemplo, si a%4 == 0 significa que a es divisible por 4, es decir, el resto de dividir a entre 4 es cero.
El programa pide que se introduzca el año mostrando el mensaje
Introduce año:
Pero para mostrar el mensaje “Introduce año”: y que salga la ñ por pantalla debemos escribir en el lugar donde debe aparecer la ñ su código ASCII.

   cout << "Introduce a"<<(char)164 <<"o: "; //164 ascii de ñ

El programa C++ completo que calcula si un año es bisiesto es el siguiente:
//Programa C++ que lee un año y muestra si es o no bisiesto
#include <iostream>
using namespace std;
int main()
{
   int anio;

   //lectura por teclado del año
   cout << "Introduce a"<<(char)164 <<"o: "; //164 ascii de ñ
   cin >> anio;

   if(a%4 == 0 and a%100 != 0 or a%400 == 0) //Condición de año bisiesto                                              
      cout << "Bisiesto" << endl;
   else
      cout << "No es bisiesto" << endl;

   system("pause"); 
}

18 comentarios:

  1. Respuestas
    1. por que segun tu esta mal hecho?????? si sabes progamar?

      Eliminar
    2. No apoyo el comentario, pero las variables del if deberían ser 'anio' y no 'a', pero si nos ponemos tiquismiquis, las buenas practicas serían poner llaves en los condicionales y paréntesis. No obstante, valoro mucho que hayan compartido este pedacito de código y no veo motivo por el cual ofender como ha hecho el caballero "Cristhian Romero", la próxima vez, explica las razones.

      Eliminar
    3. yo lo resolví así:

      #include
      #include

      using namespace std;

      int anio = 0, division = 0;

      void calcular_bisiesto (){

      division = anio / 400;
      division *= 400;
      if (division != anio){

      cout<<"no es un año bisiesto...\n";}
      else cout<<"es un año bisiesto!!\n";
      }

      int main(){

      cout<<"por favor digite un año para saber si es bisiesto: "; cin>>anio;cout<<endl;

      calcular_bisiesto();

      system("pause");
      return 0;
      }

      Eliminar
    4. Si esta mal hecho pero esta bien planteado el condicional dice a y deberia decir anio, no agregaste el include para el system pause

      Eliminar
  2. // A mi manera jaja igual funciona


    #include
    #include

    void Bisiesto ()
    {
    int bisiesto;
    std::cout << "Ingrese el anio que desea verificar si es bisiesto o no: ";
    std::cin >> bisiesto;
    int prueba = 1;

    if (bisiesto == 2020)
    {
    std::cout << bisiesto << "es bisiesto.\n" << std::endl;
    prueba=0;
    }
    else if (bisiesto > 2020)
    {
    for (int año = 2020; año<=bisiesto; año=año+4)
    {
    if (bisiesto == año)
    {
    std::cout << bisiesto << "es bisiesto.\n" << std::endl;
    prueba=0;
    }
    }
    }
    else if (bisiesto < 2020)
    {
    for (int año2 = 2020; año2>=bisiesto; año2=año2-4)
    {
    if (bisiesto == año2)
    {
    std::cout << bisiesto << "es bisiesto.\n" << std::endl;
    prueba=0;
    }
    }
    }

    if (prueba==1)
    {
    std::cout << bisiesto << " NO es bisiesto.\n" << std::endl;
    }

    }

    ResponderEliminar
    Respuestas
    1. la funcion se llama void Bisiesto porque pertenece a una solucion integral junto a otros ejercicios, pero para ejecutarlo en forma individual, reemplazarlo por int main, saludos.-

      Eliminar
  3. int main(int argc, char** argv) {
    int anio,opc;
    do{
    printf("\n\t\t\t------------------------------");
    printf("\n\t\t\tCOMPROBADOR DE ANIOS BISIESTOS");
    printf("\n\t\t\t------------------------------");
    printf("\n\tA continuacion...");
    printf("\n\tIngrese el anio que desea verificar: ");
    scanf("%d",&anio);
    if(anio%4==0 && anio%100!=0)
    printf("\nEl anio %d es BISIESTO",anio);
    else
    printf("\nEl anio %d NO es BISIESTO",anio);
    printf("\n");
    system("pause");
    system("cls");
    printf("\nDesea comprobar otro anio?");
    printf("\n\n|(1.) --- SI|(2.) --- NO|");
    printf("\n\n\tEscoga: ");
    scanf("%d",&opc);
    switch(opc)
    {
    case 1:{
    system("cls");
    printf("\nReiniciando programa...");
    break;
    }
    case 2:{
    system("cls");
    printf("\nGracias por usar mi programa. ADIOS :)");
    break;
    }
    default :{
    printf("\nTu opcion es INVALIDA, igual que Lenin Moreno");
    printf("\nPor eso repetiremos el programa, ahora indica una de las opciones validas");
    printf("\n");
    system("pause");
    system("cls");
    break;
    }
    }
    }while(opc!=2);
    return 0;
    }

    ResponderEliminar
  4. #include

    using namespace std;

    bool bisiesto (int numero)
    {

    return ((numero%4==0 && numero%100!=0 )|| numero%400==0);
    }

    int main()
    {
    int num;
    cout << "Hola. Con el 0 finaliza el ejercicio.\n"<< endl;
    do{
    cout << "Ingrese el a"<<(char)164<<"o: ";
    cin >> num;
    if (bisiesto(num))
    cout << "El a"<<(char)164<<"o " << num << " es bisiesto.\n\n";
    else
    cout << "El a"<<(char)164<<"o " << num << " NO es bisiesto.\n\n";
    }
    while (num !=0);

    return 0;
    }

    Mi solución. Mi entorno de desarrollo es QT

    ResponderEliminar
  5. #include

    int obtenerDiasDelMes(int mes, int anio) {
    if (mes == 2) {
    if ((anio % 4 == 0 && anio % 100 != 0) || anio % 400 == 0) {
    return 29; // Año bisiesto, febrero tiene 29 días
    } else {
    return 28; // Año no bisiesto, febrero tiene 28 días
    }
    } else if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {
    return 30; // Meses con 30 días
    } else {
    return 31; // Meses con 31 días
    }
    }

    int main() {
    int mes, anio;

    std::cout << "Ingrese el número de mes (1-12): ";
    std::cin >> mes;

    std::cout << "Ingrese el año: ";
    std::cin >> anio;

    if (mes < 1 || mes > 12) {
    std::cout << "Error: Número de mes inválido." << std::endl;
    return 0;
    }

    int dias = obtenerDiasDelMes(mes, anio);

    std::cout << "El mes " << mes << " del año " << anio << " tiene " << dias << " días." << std::endl;

    return 0;

    ResponderEliminar
  6. a no pos tonces cual sirve

    ResponderEliminar