linguagem c
Codifique um procedimento com a assinatura void estacao(int dia, int
mes) que exiba no vídeo qual a estação do ano correspondente à data passada por
parâmetro. Lembre-se que a primavera começa em 23 de setembro, o verão em 21 de
dezembro, o outono em 21 de março e o inverno em 21 de junho. Crie um método
main para testar a função estacao.
Soluções para a tarefa
Resposta:
#include <stdio.h>
#include <stdbool.h>
//Compiler version gcc 6.3.0
char* estacao(int day, int month)
{
int transitionMonths[4] = {3, 6, 9, 12};
int transitionDays[4] = {21, 21, 23, 21};
bool isTransitionMonth = false;
int transitionMonth = 0;
for (int i = 0; i <= 4; i++)
{
if (month == transitionMonths[i])
{
isTransitionMonth = true;
transitionMonth = i;
}
}
if (isTransitionMonth)
{
if (day < transitionDays[transitionMonth])
{
month--;
}
else
{
month++;
}
}
if (month < transitionMonths[0] || month == 13)
{
return "verão";
}
if (month < transitionMonths[1])
{
return "outono";
}
if (month < transitionMonths[2])
{
return "inverno";
}
if (month < transitionMonths[3])
{
return "primavera";
}
}
int main()
{
printf("%s", estacao(15, 6));
return 0;
}