Jump to content

funções


JMAS

Recommended Posts

int bissexto(int ano)
{
int resultado;

if(ano%100==0){
  if(ano%400==0)
   resultado=1;
  if(ano%400!=0)
   resultado=0;
}
if(ano%100!=0){
  if(ano%4==0)
   resultado=1;
  if(ano%4!=0)
   resultado=0;
}
return resultado;
}

int dias(int mes, int ano)
{
int resultado;
  
if(mes==1||mes==3||mes==5||mes==7||mes==8||mes==10||mes==12)
  resultado=31;
if(mes==4||mes==6||mes==9||mes==11)
  resultado=30;
if(mes==2)
  resultado=28+bissexto(ano);

return resultado;
}

int diasEntreDatas(int dia1, int mes1, int ano1, int mes2, int ano2)
{
  int resultado=0, mes, ano;

if(ano1<ano2)
  {
    resultado=resultado+dias(mes1,ano1)-dia1;/*dias ate ao fim do mes*/
   for(mes=mes1+1;mes<=12;mes++)
    resultado=resultado+dias(mes,ano1);/*somatorio ate ao fim do ano*/
   for(ano=ano1+1;ano<ano2;ano++)
    resultado=resultado+365+bissexto(ano);/*soma dos anos*/
   for(mes=1;mes<mes2;mes++)
    resultado=resultado+dias(mes,ano2);/*soma dias desde o inicio do ano2*/
   resultado=resultado+1;/*para o primeiro dia do mes seguinte*/
  }
else if(ano1==ano2)
  {
    resultado=resultado+dias(mes1,ano1)-dia1;/*dias ate ao fim do mes*/
   for(mes=mes1+1;mes<=mes2;mes++)
     resultado=resultado+dias(mes,ano1);/*somatorio dos meses*/
   resultado=resultado+1;/*ate ao primeiro dia do mes seguinte*/
  }  
  return resultado;
}

estas tres funçoes servem para calcular o numero de dias de vida de uma pessoa... como faço para declarar o valor do return dentro da funçao main?

outro problema que estou a ter e que na linha 68 ele diz "implicit declaration of function printf " e na linha 69 diz o mesmo , mas para o scanf, estou a mais de meia hora a tentar perceber porque, alguem me pode ajudar?

Link to post
Share on other sites

nao nao, eu tento explicar melhor... dadas aquelas 3 funçoes se nao tiverem erros, por exemplo uma pessoa que nasça a 15/10/2011 e por exemplo de entrada o mes 11 do mesmo ano, a resposta pretendida e 17, pois contam os 16 dias ate ao final do mes mais um ate ao primeiro dia do mes seguinte. obtendo este valor na funçao diasEntreDatas, o objectivo e depois imprimi-lo na funçao main:

case 1:

    printf(" dias\n");

break;

dentro daquele printf.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.