Pregunta sobre programación en lenguaje C, salida del calendario 2012
#include
//Ingrese el nombre del mes especificado y el encabezado de la semana
void prt_title(int mes)
{
cambio (mes)
{
caso 1:puts("Enero");descanso;
caso 2 :puts("Febrero");descanso;
caso 3:puts("Marzo");descanso;
caso 4:puts("Abril");descanso;
p>caso 5:puts("May");break;
caso 6:puts("June");break;
caso 7: puts("julio ");descanso;
caso 8:puts("agosto");descanso;
caso 9:puts("septiembre");descanso;
caso 10:puts("Octubre");descanso;
caso 11:puts("Noviembre");descanso;
caso 12:puts("Diciembre" );break;
}
printf("Domingo\tlunes\tmartes\tmiércoles\tjueves\tviernes\tsáb.\n");
}
//Calcular el día de la semana cuando el primer día del mes especificado es
int first_day_month(int año, int mes)
{
if (mes<3)
{
mes += 12;
año--;
}
retorno (1 + 2 * mes + 3 * (mes + 1) / 5 + año + año / 4 - año / 100 + año / 400) % 7;
}
//Calcular el número de días en el mes especificado
int días_del_mes(int año, int mes)
{
cambio (mes)
{
caso 1:
caso 3:
caso 5:
caso 7:
caso 8:
caso 10:
caso 12:return 31;break;
caso 4 :
caso 6:
caso 9:
caso 11:retorno 30;descanso;
caso 2:retorno ((año % 4 == 0 && año % 100) || (año % 400 == 0)) 29 : 28;descanso;
}
}
//Muestra el calendario del mes especificado
void prt_the_month(int año, int mes)
{
int fd, i, sp = 0, días;
putchar('\n ');
prt_title(mes);
> fd = primer_día_mes(año, mes);
for (i = 0;i<(fd + 1) % 7;i++)
{
putchar('\t');
sp++;
}
días = días_del_mes(año, mes);
for ( i = 1;i <= días;sp++, i++)
{
if (sp&&sp % 7 == 0) putchar('\n');
printf("%2d\t", i);
}
putchar('\n');
}
//Muestra el calendario del año especificado
void prt_the_year(int año)
{
int i;
printf (" Calendario de %d : \n", año);
for (i = 1;i <= 12;i++)
{
prt_the_month (año, i);
}
}
//Función principal, probada en 2012
int main(void)
{
prt_the_year(2012);
getchar();
devuelve 0;
} p>
Gracias por adoptar