Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language version or invalid test data, or description of the problem is not clear.

EDUPT18 - calendario

O objetivo deste trabalho é praticar o uso de listas circulares e funções, para isso deve-se desenvolver um programa que ao receber um ano (ex. 2005) seja capaz de mostrar na tela o calendário do ano informado em um formato mais próximo possível do mostrado abaixo:

 

 

 

Orientações para o desenvolvimento:

 

a)      Escreva uma função que receba como argumento o ano e retorne 1 se for um ano bissexto e 0 se não for um ano bissexto. Um ano é bissexto se for divisível por 4, mas não por 100. Um ano também é bissexto se for divisível por 400.

 

b)      Escreva uma função que receba dia, mês e ano e calcule o dia da semana. Esta função retorna 0 se for domingo, 1 se for segunda-feira, etc... Para calcular o dia da semana use o código a seguir no qual o dia da semana está na variável f:

 

int f = ano + dia + 3 * (mês - 1) - 1;

if (mês < 3) ano--;

else f -= (int)(0.4 * mês + 2.3);

f += (int)(ano/4) - int((ano/100 + 1) * 0.75);

f %= 7;

 

c)      Escreva uma função que solicite ao usuário um ano e imprima o calendário desse ano. Utilize as funções dos dois exercícios anteriores, lembrando que os números de dias de janeiro a dezembro são respectivamente 31, 28/29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31.

 

d)      Escreva funções para tratar a questão da apresentação dos dados.

 

e)      Nomes e valores de meses, dias da semana  e dias do mês devem ser armazenados em listas circulares.


Added by:IFTM_Maratona
Date:2023-05-12
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:C
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.