Tutoriales de informática - Abrirllave.com

Abrirllave.com

Ejercicio de lenguaje C - Mes del año

Escribir en lenguaje C un programa que:

1º) Pida por teclado el número (dato entero) de un mes del año.

2º) Muestre por pantalla el nombre (dato cadena) correspondiente a dicho mes.

Nota: Si el número de mes introducido es menor que 1 ó mayor que 12, se mostrará el mensaje: "ERROR: Mes incorrecto.".

En pantalla se verá, por ejemplo:

Visualización en pantalla del programa Mes del año, resuelto en lenguaje C.

En el caso de que el mes no sea correcto:

Visualización en pantalla del programa Mes del año incorrecto, resuelto en lenguaje C.

Solución 1: utilizando la instrucción switch

/* Programa: Mes del año (Solución 1) */

#include <conio.h>
#include <stdio.h>

int main()
{
    int mes;

    printf( "\n   Introduzca mes del a%co: ", 164 );
    scanf( "%d", &mes );

    switch ( mes )
    {
        case  1 : printf( "\n   Enero" );
                  break;
        case  2 : printf( "\n   Febrero" );
                  break;
        case  3 : printf( "\n   Marzo" );
                  break;
        case  4 : printf( "\n   Abril" );
                  break;
        case  5 : printf( "\n   Mayo" );
                  break;
        case  6 : printf( "\n   Junio" );
                  break;
        case  7 : printf( "\n   Julio" );
                  break;
        case  8 : printf( "\n   Agosto" );
                  break;
        case  9 : printf( "\n   Septiembre" );
                  break;
        case 10 : printf( "\n   Octubre" );
                  break;
        case 11 : printf( "\n   Noviembre" );
                  break;
        case 12 : printf( "\n   Diciembre" );
                  break;
        default : printf( "\n   ERROR: Mes incorrecto." );
    }

    getch(); /* Pausa */

    return 0;
}

Solución 2: utilizando las instrucciones switch e if

/* Programa: Mes del año (Solución 2) */

#include <conio.h>
#include <stdio.h>
#include <string.h>

int main()
{
    char nombre[11];
    int mes;

    printf( "\n   Introduzca mes del a%co: ", 164 );
    scanf( "%d", &mes );

    switch ( mes )
    {
        case  1 : strcpy( nombre, "Enero" );
                  break;
        case  2 : strcpy( nombre, "Febrero" );
                  break;
        case  3 : strcpy( nombre, "Marzo" );
                  break;
        case  4 : strcpy( nombre, "Abril" );
                  break;
        case  5 : strcpy( nombre, "Mayo" );
                  break;
        case  6 : strcpy( nombre, "Junio" );
                  break;
        case  7 : strcpy( nombre, "Julio" );
                  break;
        case  8 : strcpy( nombre, "Agosto" );
                  break;
        case  9 : strcpy( nombre, "Septiembre" );
                  break;
        case 10 : strcpy( nombre, "Octubre" );
                  break;
        case 11 : strcpy( nombre, "Noviembre" );
                  break;
        case 12 : strcpy( nombre, "Diciembre" );
    }

    if ( mes >= 1 && mes <= 12 )
        printf( "\n   %s", nombre );
    else
        printf( "\n   ERROR: Mes incorrecto." );

    getch(); /* Pausa */

    return 0;
}

Solución 3: anidando switch en if

/* Programa: Mes del año (Solución 3) */

#include <conio.h>
#include <stdio.h>
#include <string.h>

int main()
{
    char nombre[11];
    int mes;

    printf( "\n   Introduzca mes del a%co: ", 164 );
    scanf( "%d", &mes );

    if ( mes >= 1 && mes <= 12 )
    {
        switch ( mes )
        {
            case  1 : strcpy( nombre, "Enero" );
                      break;
            case  2 : strcpy( nombre, "Febrero" );
                      break;
            case  3 : strcpy( nombre, "Marzo" );
                      break;
            case  4 : strcpy( nombre, "Abril" );
                      break;
            case  5 : strcpy( nombre, "Mayo" );
                      break;
            case  6 : strcpy( nombre, "Junio" );
                      break;
            case  7 : strcpy( nombre, "Julio" );
                      break;
            case  8 : strcpy( nombre, "Agosto" );
                      break;
            case  9 : strcpy( nombre, "Septiembre" );
                      break;
            case 10 : strcpy( nombre, "Octubre" );
                      break;
            case 11 : strcpy( nombre, "Noviembre" );
                      break;
            case 12 : strcpy( nombre, "Diciembre" );
        }
        printf( "\n   %s", nombre );
    }
    else
        printf( "\n   ERROR: Mes incorrecto." );

    getch(); /* Pausa */

    return 0;
}