Jump to content
Sign in to follow this  
JMAS

funções

Recommended Posts

JMAS

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?

Share this post


Link to post
Share on other sites
HappyHippyHippo

tens de inserir a linha no início do ficheiro para incluir a declaração das funções printf e scanf:

#include <stdio.h>


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
JMAS

agora como e que eu pego no resultado obtido para o tempo de vida de uma pessoa e peço para imprimir na main?

Share this post


Link to post
Share on other sites
askpt

No main só tens de colocar na zona de declaração de variáveis.

int resul;

e quando precisares de chamar a função fazes:

resul=diasEntreDatas(ano);

Share this post


Link to post
Share on other sites
JMAS

a minha dificuldade esta em por ser da funçao diasEntreDatas que tem de vir o retorno da vida da pessoa em dias.

Share this post


Link to post
Share on other sites
JMAS

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.

Share this post


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
Sign in to follow this  

×
×
  • 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.