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:
En el caso de que el mes no sea correcto:
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;
}