Ir para conteúdo
Edemar

Ajuda com algoritimo

Recommended Posts

precisa que seja  em c , só com IF, ELSE, ELSE IF.

precisa receber dia,mes,ano atual separados

precisa receber dia,mes,ano nascimento separados

idade não pode ser maior 150 anos

descobrir ano atual e o de nascimento são bissexto

 

#include <stdio.h>
#include <locale.h>
#include <math.h>

validaatual(int aatual)    //Função para validação de ano
{
    {
        printf("\nO valor digitado esta incorreto, valores permitidos {1867-2018}.");
        printf("\nDigite novamente o ano atual : ");
        scanf("%d",&aatual);
        getchar();      
    }
    if(aatual > 1867 || aatual == 2018)
    {
        validaatual(&aatual);
    }    
}

validames(int matual) //Função para validação de mês
{
    {
        printf("\nO valor digitado esta incorreto, valores permitidos {1-12}.");
        printf("\nDigite novamente o mês atual : ");
        scanf("%d",&matual);
        getchar();      
    }
    if(matual > 12 || matual == 0)
    {
        validames(&matual);
    }    
}

validadia(int datual)    //Função para validação de dia
{
    {
        printf("\nO valor digitado esta incorreto, valores permitidos {1-31- Exceto Fevereiro}.");
        printf("\nDigite novamente o dia atual : ");
        scanf("%d",&datual);
        getchar();      
    }
    if(datual > 31 || datual == 0)
    {
        validadia(&datual);    
    }    
}

validaanasc(int anasc)    //Função para validação de ano nascimento
{
    {
        printf("\nO valor digitado esta incorreto, valores permitidos {1868-2018}.");
        printf("\nDigite novamente o ano de nascimento : ");
        scanf("%d",&anasc);
        getchar();      
    }
    if(anasc > 1867 || anasc ==2018)
    {
        validaanasc(&anasc);
    }    
}

validamnasc(int mnasc)    //Função para validação de mes nascimento
{
    {
        printf("\nO valor digitado esta incorreto, valores permitidos {1-12}.");
        printf("\nDigite novamente o mês nascimento : ");
        scanf("%d",&mnasc);
        getchar();      
    }
    if(mnasc > 12 || mnasc == 0)
    {
        validamnasc(&mnasc);
    }    
}

validadnasc(int dnasc)    //Função para validação de dia nascimento
{
    {
        printf("\nO valor digitado esta incorreto, valores permitidos {1-31}.");
        printf("\nDigite novamente o dia nascimento : ");
        scanf("%d",&dnasc);
        getchar();      
    }
    if(dnasc > 31 || dnasc == 0)
    {
        validadnasc(&dnasc);
    }    
}

void main()
{
    setlocale(LC_ALL,"");
    int calendario[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
    int datual,matual,aatual,dnasc,mnasc,anasc,bissesto=0;
    int totalAnos, totalMes, totalDias, diasMes, anoBissexto, bissexto;
    
        if( aatual == 0 || aatual >1867 || aatual ==2018 )    //Entrada do ano atual
    {
        printf("\nDigite o ano atual: ");
        scanf("%d",&aatual);
    }
    
    printf("\nDigite o mês atual: ");    //Entrada do mês atual        
    scanf("%d",&matual);
    if(matual > 12 || matual == 0)
    {
        validames(&matual);
    }
    
    printf("\nDigite o dia atual : ");    //Entrada do dia atual
    scanf("%d",&datual);
    if(datual > 31 || datual == 0)
    {
        validadia(&datual);
    }
    
    if( anasc == 0 || anasc > 1867 || anasc ==2018 )
    {
        printf("\nDigite o ano de seu Nascimento: ");    //Entrada do ano nascimento
        scanf("%d",&anasc);
    }
    
    if( mnasc == 0 || mnasc > 12 )
    {    
        printf("\nDigite seu mês de Nascimento: ");    //Entrada do mês nascimento
        scanf("%d",&mnasc);
    }
        
    if ( dnasc == 0 || dnasc > 31 )
    {
        printf("\nDigite o dia de seu Nascimento : "); //Entrada do dia nascimento
        scanf("%d",&dnasc);
    }
    
    int ValidacaoMesDia( )  // aqui valida o mes e fala se e bissexto ou nao
    {
    if(matual==1 & datual <= 31)
    {    
    int Janeiro= matual;
    }
    else
        if(matual==2 & datual <= 29)
    {
        if (aatual%4==0 & datual <= 29 )
    {
        int Fevereiro= matual;
        bissexto = 1;
    }
    else
        if( datual <= 28 )
    {
    int Fevereiro= matual;
        bissexto = 0;
    }
    }
    else
        if(matual==3 & datual <= 31)
    {
        int Marco= matual;
    }
    else
        if(matual==4 & datual <=30)
    {
    int Abril= matual;
    }
    else
        if(matual==5 & datual <=31)
    {
    int Maio= matual;
    }
    else
        if(matual==6 & datual<=30)
    {
    int Junho= matual;
    }
    else
        if(matual==7 & datual <= 31)
    {
    int Julho= matual;
    }
    else
        if(matual==8 & datual <=31)
    {
    int Agosto= matual;
    }
    else
        if(matual==9 & datual <= 30)
    {
    int Setembro= matual;
    }
    else
        if(matual==10 & datual <= 31)
    {
    int Outubro= matual;
    }
    else
        if(matual==11 & datual <= 30)
    {
    int Novembro= matual;
    }
    else
        if(matual==12 & datual <= 31)
    {
    int Dezembro= matual;
    }
    else
    {
    printf("Erro Confirme os dados novamente... \n\n");
    return ColetaDados( );
    }
        
    if (aatual % 4 == 0 && (aatual % 400 == 0 || aatual % 100 != 0))   // ano em que atual é bissexto
      {
        printf("\nAno atual é bissexto.\n");
      }    
      else
    {
        printf("\nAno atual não é bissexto.\n");
    }    
    
        if (anasc % 4 == 0 && (anasc % 400 == 0 || anasc % 100 != 0))   // ano em que nasceu é bissexto
      {
          printf("\nAno que voçê nasceu é bissexto.\n");
      }    
      else
    {
        printf("\nAno que voçê nasceu não é bissexto.\n");
    }
            
          
    if(matual < mnasc) //Se não tiver feito aniversário, desconta 1
    {
        totalAnos = aatual - anasc -1;
        totalMes = totalAnos * 12;
        totalDias = totalMes * 365 + bissesto;
    }
    else if (matual = mnasc) //Se tiver no mes do aniversario
    {

        if(datual >= dnasc) //Verifiva se está no dia ou já passou
        {
            totalAnos = aatual - anasc;
            totalMes = totalAnos * 12;
            totalDias = totalMes * 365 + bissesto;
        }
        else  //Se já passou do mes do aniversario
        {
            totalAnos = aatual - anasc;
            totalMes = totalAnos * 12;
            totalDias = totalMes * 365 + bissesto;
        }
    
    }
    
        printf("Sua idade é: %d\n", totalAnos); //mostra idade da pessoa
        system("PAUSE");
        return 0;
    }
}
   

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.