Alguem poderia me ajudar? Etudo programação em C de forma auto-didata, e na apostila que estou estudando, encontrei o seguinte exercicio:
Escreva um programa que peça três inteiros, correspondentes a dia , mês e ano.
Peça os números até conseguir valores que estejam na faixa correta (dias entre 1
e 31, mês entre 1 e 12 e ano entre 1900 e 2100). Verifique se o mês e o número
de dias batem (incluindo verificação de anos bissextos). Se estiver tudo certo
imprima o número que aquele dia corresponde no ano. Comente seu programa.
PS: Um ano é bissexto se for divisível por 4 e não for divisível por 100, exceto
para os anos divisíveis por 400, que também são bissextos.
Como a parte que eu ja estudei possui apenas a biblioteca stdio.h, e ainda nao estudei struct nem void, creio eu que é para fazer o programa sem esses elementos.
O PROGRAMA ATE AGORA FICOU ASSIM:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int Janeiro, Fevereiro, Marco, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro;
int Total, Dia, Mes, Ano;
Janeiro==31;
Marco==31;
Abril==30;
Maio==31;
Junho==30;
Julho==31;
Agosto==31;
Setembro==30;
Outubro==31;
Novembro==30;
Dezembro==31;
if (Mes
do
{
printf ("\n\nEntre com um dia do mes: ");
scanf ("%d", &Dia);
}
while
((Dia<1)||(Dia>31));
NOVAMENTE:
if
(Dia=31)
{
do
{
printf ("\n\nDigite agora o mes desejado: ");
scanf ("%d", &Mes);
}
while ((Mes<1)||(Mes>12));
switch (Mes)
{
case 1:
goto MENSAL;
case 2:
goto NOVAMENTE;
case 3:
goto MENSAL;
case 4:
goto NOVAMENTE;
case 5:
goto MENSAL;
case 6:
goto NOVAMENTE;
case 7:
goto MENSAL;
case 8:
goto MENSAL;
case 9:
goto NOVAMENTE;
case 10:
goto MENSAL;
case 11:
goto NOVAMENTE;
case 12:
goto MENSAL;
}
MENSAL:
do
{
printf ("\n\nDigite agora o ano desejado: ");
scanf ("%d", Ano);
system ("PAUSE");
return 0;
}
while ((Ano<1900)||(Ano>2100));
}
MENSALINO:
if (Dia=30)
{
do
{
printf ("\n\nDigite agora o mes desejado: ");
scanf ("%d", &Mes);
}
while ((Mes<1)||(Mes>12));
switch (Mes)
{
case 2:
goto MENSALINO;
}
printf ("\nDigite agora o ano desejado: ");
scanf ("%d", &Ano);
system ("PAUSE");
return 0;
}
if (Dia<=28)
{
do
{
printf ("\n\nDigite agora o mes desejado: ");
scanf ("%d", &Mes);
}
while ((Mes<1)||(Mes>12));
printf ("Digite agora o ano desejado: ");
scanf ("%d", &Ano);
if (ano%4==0)
{
Fevereiro==29;
}
else
{
Fevereiro==28;
}
system ("PAUSE");
return 0;
}
getch();
}
Esse programa nao ta 100%, mas pelo menos por enquanto ta atendendo as necessidades do ecercicio, porém agora eu preciso fazer 2 funções: uma função para relacionar O numero do Mes, com o nome do mes correspondente, igual: (Mes 1=Janeiro, Mes 2=Fevereiro, Mes 3=Março, etc), e outra função que relacione a data especificada no programa, com o dia que essa data representa no ano, por exemplo: 7/7/2007 corresponde ao dia:189 do ano.
Se alguem puder me ajudar, pode fazer as alterações necessarias nesse programa que eu comecei a fazer, ou então fazer um programa totalmente novo.
Obrigado.